在一个简单的browserify
应用中,我想使用this
关键字来引用导出对象中的其他功能,但它似乎并没有像我一样工作#39; d期望它:
(function() {
module.exports = {
a: function() {
console.log('Hello World');
},
b: function() {
this.a(); // Problem: this is set to window.document
}
};
})();
我假设上面的代码可行,但似乎this
设置为window.document
而不是导出的对象。我很确定我过去曾经这样做过,所以它可能很简单,但我有点卡在它上面了!
我知道我可以将对象本身导出到window
,或者让它成为可以引用的命名变量,但我想了解为什么上面的代码没有#&# 39;工作。
非常感谢!
答案 0 :(得分:1)
设置"这个"对象你需要调用这个函数作为对象属性,比如
foo.a()
或者使用call / apply来明确设置"这个"
bar.a.apply(foo,[args])
答案 1 :(得分:0)
你快到了。将您的代码更改为下方,它可以正常工作。
(function () {
var module = new Object();
module.exports = {
a : function () {
console.log('Hello World');
},
b : function () {
this.a();
}
};
module.exports.b();
})();