2014-10-23 4 views
0

У меня есть функция, как следующее:Javascript TypeError, не функция

function handler(){ 
    // ... 
} 

И я назвал эту функцию в другой JS файл, как показано ниже:

if(window.handler()) 
    handler(); 

Но я получил следующее сообщение об ошибке в поджигатель консоль:

TypeError: window.handler не является функцией

Любой человек может мне помочь?

Спасибо!

ответ

1

если вы хотите проверить, если функция существует, сделать это таким образом:

if (window.alertHandler) 
    alertHandler(); 

if (window.myFunc()) работает функционировать первый и проверить возвращаемое значение. но if (window.myFunc) не запускает его, просто проверьте, существует ли в объекте окна myFunc.

2

Вы либо объявить функцию как это:

window.handler = function() { 
    // function code here 
}; 

if (window.handler) { // check if the function actually exist 
    window.handler(); // call the function 
} 

или изменить, если:

if (typeof handler === 'function') { 
    handler(); 
} 
0

Чтобы вызвать эту функцию как метод объекта окна сначала вы должны сделать это метод объекта окна.

function somefunction(){ 
    // ... 
} 

window.handler = somefunction; 

//NOW you can reference it like that 

window.handler(); 

Как показано в другом ответе, вы также можете назначить анонимную функцию.

Смежные вопросы