Ответ 1
Используйте выражение функции, а не объявление функции.
if(typeof myfunction != 'function'){
window.myfunction = function(){};
}
(Я использую window
, так как ваш последний абзац предлагает вам глобальную функцию)
В php я пишу следующее
<?php
if(x != 0) {
echo "function myfunction(){};";
}
?>
В javascript я хочу проверить, существует ли функция и если не выписать пустую функцию
if(typeof myfunction != 'function'){
function myfunction(){};
}
Это отлично работает в firefox, но в хромированном состоянии, даже если функция типаof равна ей, она все еще входит и создает пустую функцию. Я не могу найти работу для chrome, я пробовал if (! Myfunction), если (typeof window.myfunction!= '), Но ничего не работает здесь для хром, когда все работает в firefox. Любые идеи?
Используйте выражение функции, а не объявление функции.
if(typeof myfunction != 'function'){
window.myfunction = function(){};
}
(Я использую window
, так как ваш последний абзац предлагает вам глобальную функцию)
Вы должны использовать строгий оператор сравнения! ==
if(typeof myFunction !== 'function'){
window.myFunction = function(){}; // for a global function or
NAMESPACE.myFunction = function(){}; // for a function in NAMESPACE
}
Также попытайтесь сохранить js-функции внутри пространств имен, таким образом вы избегаете столкновений с другими js-библиотеками в будущем.