我有一个成员函数 render()。该函数调用类的另一个成员add(any)。这是片段。
render(){
collection.each(this.add);
}
如果我在add中使用关键字“this”,则类型是window。我希望它是成员类的实例。
在构造函数、成员函数或成员访问器中,this 属于包含类的类实例类型。
正如 JcFx 指出的那样,您的this
范围内不同each
打回来。
但是,如果您使用“粗箭头”匿名函数,它将使用词法作用域规则this
这样你就可以得到你正在寻找的东西:
render(){
collection.each((x) => this.add(x));
}
编译为以下 JavaScript:
X.prototype.render = function () {
var _this = this;
collection.each(function (x) {
return _this.add(x);
});
}
另一种选择是明确bind
the add
呼叫所需的this
:
render(){
collection.each(this.add.bind(this));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)