Вызов другой возвращенной функции в том же модуле - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть такой модуль:

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

Мне нужно позвонить f_b из f_a, и я не знаю, как лучше всего это сделать.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

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();
0 голосов
/ 22 ноября 2018

Существует дополнительный )(). Кажется, вы хотите создать выражение для немедленной вызова функции.

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())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...