大家在运行其他函数时有些困惑。我试过的是:
var a = (function() {
var babe = function() {
console.log('yay');
};
})();
当我运行类似的代码时a.babe()
,会给我类似的错误TypeError: Cannot read property 'babe' of undefined
。为什么会这样呢?
我想babe
从a
...调用该函数。我该怎么做?我希望你们能帮助我...
提前致谢。
您正在创建一个称为的函数babe
,它仅位于围绕它的立即调用的函数表达式(IIFE)的范围内。并且由于您不向调用者返回任何内容,因此默认情况下,函数调用将被评估为undefined
并将存储在中a
。这就是为什么你会得到错误,
TypeError: Cannot read property 'babe' of undefined
这意味着您正在尝试访问babe
在undefined
值上调用的属性。在这种情况下,a
是undefined
。
除了所有这些,您还可以简单地babe
从IIFE返回包装在对象中的函数,如下所示
var a = (function() {
return {
babe: function() {
console.log('yay');
}
};
})()
现在,将返回的对象分配给a
,您可以babe
像这样调用函数
a.babe();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句