浏览器化模块中的“this”上下文
'this' context in browserify modules
在一个简单的browserify
应用程序中,我想使用 this
关键字来引用导出对象中的其他函数,但它似乎没有像我期望的那样工作:
(function() {
module.exports = {
a: function() {
console.log('Hello World');
},
b: function() {
this.a(); // Problem: this is set to window.document
}
};
})();
我以为上面的代码会起作用,但似乎this
设置为window.document
而不是导出的对象。我很确定我过去有过这个工作,所以它可能很简单,但我有点坚持下去!
我知道我可以将对象本身导出到 window
,或者使其成为可以引用的命名变量,但我想了解为什么上面的代码不起作用。
非常感谢!
要将"this"设置为对象,您需要将此函数作为对象属性调用,例如
foo.a()
或使用调用/应用显式设置"this"
bar.a.apply(foo,[args])
你快到了。 将您的代码更改为下面,它可以工作。
(function () {
var module = new Object();
module.exports = {
a : function () {
console.log('Hello World');
},
b : function () {
this.a();
}
};
module.exports.b();
})();
相关文章:
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- extjs中事件处理程序函数中的THIS上下文
- 在对象文字的声明中继承上下文(this)?“自我”还好吗
- 是否可以绑定javascript函数,使其本地上下文与“this”相同
- 当作为脚本运行时.js Node中“this”的上下文是什么
- 变量“this”上下文在重新赋值变量后未更新
- 浏览器化模块中的“this”上下文
- Node.js:在模块作用域中使用“this”运算符的上下文是什么
- 使用“this”时,函数会丢失上下文 - Raphael JS
- JavaScript承诺:具有绑定的深度嵌套上下文(this)
- d3.js/CoffeeScript:访问mouseover中类和路径的执行上下文(this)
- Angular服务"this"正在更改窗口对象的上下文
- 传递一个原型's函数作为参数而不丢失'this'上下文
- 全局上下文和“this”;在node . js
- ' this '在全局上下文中和内部函数中
- 保留'this'上下文
- 在回调中调用Js `this`上下文
- JS bind(),我需要两个“this”上下文
- 我如何传递一个非'this'上下文到函数
- 调用带有promise和'this'上下文