【发布时间】:2013-08-28 07:38:04
【问题描述】:
我尝试使用一些 ES5 的数组额外方法,例如 map、some、forEach
[1, 2, 3].forEach(function (el) {
console.log(this) // window
})
但我发现这些方法中的上下文不是调用它们的数组
但是Global context 像window。
在 MDN 的 opinion
当一个函数作为一个对象的方法被调用时,它的 this 被设置为 调用该方法的对象。
那么数组和被调用方法之间究竟是什么关系呢?
【问题讨论】:
-
匿名回调函数不是
Array的方法,forEach()是。
标签: arrays function ecmascript-5