在模块中使用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;
}
});
答案 0 :(得分:1)
您必须注意在带有$el
方法的对象上定义init
:
define(function() {
function init($el) {
this.$el = $el;
}
return {
$el: undefined,
init: init
};
});