使用'这个'在requireJS模块中

时间:2016-06-21 09:50:25

标签: javascript requirejs

在模块中使用RequireJS,无论如何我可以使用this来引用模块本身吗?
即。

define(function() {
  var $el;
  function init($el) {
    this.$el = $el  // How can 'this.$el' refer to the $el above?
  }
  return  {
    init: init;
 }
});

我已尝试使用call来致电init。即。

require(["mymodule"], function(mymodule) {
  mymodule.init.call(mymodule);
 });

但模块中的this仅引用window静止。

有没有办法让this表现得更像其他语言,即它指的是封闭范围?

目前我必须优先考虑丑陋的模块变量。 即。

   define(function() {
      var m_$el;
      function init($el) {
        m_$el = $el;  
      }
    });

1 个答案:

答案 0 :(得分:1)

您必须注意在带有$el方法的对象上定义init

define(function() {
  function init($el) {
    this.$el = $el;
  }
  return  { 
    $el: undefined,
    init: init
  };
});