如何验证函数是否在JavaScript中定义?

如何验证函数是否在JavaScript中定义?,javascript,Javascript,如何验证函数是否已定义 这样行吗 if(window.opener.MyFunctionBlah) { ... } 对。函数和其他任何函数一样,只是对象的属性,因此可以将它们视为属性。如果该函数(或名为MyFunctionBlah的window.opener的任何成员)已定义且不为空,则上面发布的条件将返回true。是。函数和其他任何函数一样,只是对象的属性,因此可以将它们视为属性。如果该函数(或名为MyFunctionBlah的window.opener的任何成员)已定义且非空,则您上面

如何验证函数是否已定义

这样行吗

if(window.opener.MyFunctionBlah) {  ...  }

对。函数和其他任何函数一样,只是对象的属性,因此可以将它们视为属性。如果该函数(或名为
MyFunctionBlah
window.opener
的任何成员)已定义且不为空,则上面发布的条件将返回true。

是。函数和其他任何函数一样,只是对象的属性,因此可以将它们视为属性。如果该函数(或名为
MyFunctionBlah
window.opener
的任何成员)已定义且非空,则您上面发布的条件将返回true。

如果我没记错的话,(typeof function(){})在IE中是“object”。不,它也是“function”。我认为您考虑的是数组的typeof。在这种特定情况下,它可能是“if(window.opener&&typeof window.opener.MyFunctionBlah=='function')”。在
window.opener
的情况下,即使
MyFunctionBlar
函数,也不能期望window.opener始终是一个对象。在IE
typeof window.opener.MyFunctionBlar
将是
object
。如果我没记错的话,(typeof function(){})在IE中是“object”。不,它也是“function”。我认为您考虑的是数组的typeof。在这种特定情况下,它可能是“if(window.opener&&typeof window.opener.MyFunctionBlah=='function')”。在
window.opener
的情况下,即使
MyFunctionBlar
函数,也不能期望window.opener始终是一个对象。在IE
typeof window.opener.MyFunctionBlar
中将是
object
。从技术上讲,非空、非假、非零和非空字符串。。。但希望任何看起来像函数的名称,如果它存在的话,实际上都是函数。从技术上讲,非null、非false、非零和非空字符串。。。但希望,任何看起来像函数的名称,如果它存在的话,实际上都是函数。
if (typeof yourFunctionName === 'function') {
    yourFunctionName();
}