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