Подтвердить что ты не робот

Если функция не существует, функция write - javascript

В php я пишу следующее

<?php
if(x != 0) {
echo "function myfunction(){};";    
}
?>

В javascript я хочу проверить, существует ли функция и если не выписать пустую функцию

if(typeof myfunction != 'function'){
    function myfunction(){};
}

Это отлично работает в firefox, но в хромированном состоянии, даже если функция типаof равна ей, она все еще входит и создает пустую функцию. Я не могу найти работу для chrome, я пробовал if (! Myfunction), если (typeof window.myfunction!= '), Но ничего не работает здесь для хром, когда все работает в firefox. Любые идеи?

4b9b3361

Ответ 1

Используйте выражение функции, а не объявление функции.

if(typeof myfunction != 'function'){
   window.myfunction = function(){};
}

(Я использую window, так как ваш последний абзац предлагает вам глобальную функцию)

Ответ 2

Вы должны использовать строгий оператор сравнения! ==

if(typeof myFunction !== 'function'){
    window.myFunction = function(){}; // for a global function or
    NAMESPACE.myFunction = function(){}; // for a function in NAMESPACE 
}

Также попытайтесь сохранить js-функции внутри пространств имен, таким образом вы избегаете столкновений с другими js-библиотеками в будущем.