在同一模块中调用另一个返回的函数

时间:2018-11-22 16:56:24

标签: javascript module

我有一个像这样的模块:

var myMod = function() {
   return {
       f_a: function() {}
       f_b: function() {}
   }
})();

我需要从f_b致电f_a,但我不知道什么是最好的方法。

2 个答案:

答案 0 :(得分:1)

还有一个额外的)()。看来您想创建一个立即调用的函数表达式。

var myMod = function() {
  return {
    f_a: function() {
      console.log('f_a')
    },
    f_b: function() {
      console.log('f_b');
    }
  }
};

console.log(myMod().f_a())

如果要从f_b调用f_b,请使用this。实际上,如果您正确地看到它,则此函数将返回object。在JavaScript内部的对象中,使用this

来引用其属性

var myMod = function() {
  return {
    f_a: function() {
      console.log('f_a')
    },
    f_b: function() {
      this.f_a();
      console.log('f_b');
    }
  }
};

console.log(myMod().f_b())

答案 1 :(得分:1)

var myMod = (function() {
   return {
       f_a: function() {console.log('hi from f_a');},
       f_b: function() {this.f_a();}
   }
})();

myMod.f_b();

您可以这样做

var myMod = (function() {
   return {
       f_a: function() {console.log('hi from f_a');},
       f_b: function() {this.f_a();}
   }
})();

myMod.f_b();