返回课程

在数组上下文中调用

重要性:5

结果是什么?为什么?

let arr = ["a", "b"];

arr.push(function() {
  alert( this );
});

arr[2](); // ?

调用 arr[2]() 在语法上是传统的 obj[method](),在 obj 的角色中我们有 arr,在 method 的角色中我们有 2

因此我们调用了函数 arr[2] 作为对象方法。自然地,它接收 this 引用对象 arr 并输出数组。

let arr = ["a", "b"];

arr.push(function() {
  alert( this );
})

arr[2](); // a,b,function(){...}

数组有 3 个值:最初它有两个,加上函数。