我假设有一些应用call
or apply
在这里,但我不确定如何实现它。
http://codepen.io/anon/pen/oXmmzo
a = {
foo: 'bar',
things: [1, 2, 3],
showFooForEach: function() {
this.things.map(function(thing) {
console.log(this.foo, thing);
});
}
}
a.showFooForEach();
说我想要map
一个数组,但在函数中,我需要访问this
到哪个foo
属于.这function
of map
创建一个新的this
上下文,所以我显然需要以某种方式将该上下文强制返回,但是我该如何做到这一点,同时仍然可以访问thing
?
刚刚意识到我应该阅读文档Array.map()
更仔细地。只需要传入this
值作为第二个参数map()
http://codepen.io/anon/pen/VLggpX
a = {
foo: 'bar',
things: [1, 2, 3],
showFooForEach: function() {
this.things.map(function(thing) {
console.log(this.foo, thing);
}, this);
}
}
a.showFooForEach();
此外,了解如何bind()
, call()
and apply()
对于认真的 JavaScript 开发人员来说,工作是必须的。这些使我们能够跳过愚蠢的作业,例如
var self = this;
myItems.map(function(item) {
self.itemArray.push(item);
});
with
myItems.map(function(item) {
this.itemArray.push(item);
}.bind(this));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)