分析以下问题的打印结果及原因:
1、
let num = 10;
function fn() {
console.log(this.num);
}
let obj = {
num:5,
method: function(fn) {
fn();
arguments[0]();
}
};
obj.method(fn,1)
//输出10 undefined
分析:在ES5及之前,js中函数的调用者是谁,函数的this就指向谁。第一次执行fn()时,函数的this指向的是全局的window,因此打印10。当arguments0调用函数时,因为arguments是类数组,属于对象,所以this指向了当前数组,会打印出undefined。
2、