在数组上下文调用
重要程度: 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 项:最开始有两个,后来添加进来一个函数。