第二个打印结果为什么是2?

var length = 10;

function fn () {

console.log(this.length);

}

var obj = {

length: 5,
method: function (fn) {
    fn();
    arguments[0]();
}

};

obj.method(fn, 1);
第一个this指向的是window,不明白第二个打印结果?

阅读 1.2k
1 个回答

this 谁调用指向谁,arguments[0]()相当于arguments. 0(),this指向arguments这个对象了,所以是2。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题