确定是否存在静态命名的JavaScript函数以防止错误

时间:2011-09-26 18:27:54

标签: javascript function

我的网站上有一个脚本,在调用时调用静态命名函数:

childLoad();

虽然总是调用childLoad()函数,但并不总是定义它。如果脚本不存在,如何阻止脚本调​​用此函数?

6 个答案:

答案 0 :(得分:56)

if ( typeof childLoad == 'function' ) { 
    childLoad(); 
}

答案 1 :(得分:11)

您可以使用短路评估:

childLoad && childLoad();

<小时/> EDIT

('childLoad' in this) && childLoad && childLoad();

这将确保可以引用childLoad,确保它未被定义,然后调用该函数。它没有检查以确保它是一个功能,但我个人觉得这不是必需的。

注意:如果您使用thiscallapply可能不是您所指的上下文。这实际上取决于你的其余代码。

答案 2 :(得分:6)

if(typeof childLoad == 'function') {   
  childLoad();   
}

答案 3 :(得分:1)

您只需查看:

if (childLoad)
    childLoad()

答案 4 :(得分:0)

你可以试试它!

答案 5 :(得分:0)

{{1}}