您是否应该因为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/

10-11 08:24