您是否应该因为return语句而在控制台中打印?由于末尾的(),该代码立即被调用,那么为什么不打印呢?
var Module = (function () {
var privateMethod = function () {
// private
};
var someMethod = function () {
// public
console.log('hello');
};
var anotherMethod = function () {
// public
};
return {
someMethod: someMethod,
anotherMethod: anotherMethod
};
})();
最佳答案
return {
someMethod: someMethod, // just a function reference
anotherMethod: anotherMethod // again a function reference
};
因此,您没有调用该函数。您只是返回附加到对象属性的函数引用。在执行
someMethod()
函数的同时,尝试在此处使用逗号运算符,该运算符的计算结果最正确。return {
someMethod: someMethod(), someMethod, // first getting called and someMethod ref is passed to the property
anotherMethod: anotherMethod
};
关于javascript - 为何公共(public)方法不在IIFE中打印?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28956804/