var length = 10;function fn() { console.log(this.length);}var obj = { length: 5, method: function(fn) { fn(); arguments[0](); }};obj.method(fn, 1); 请认真思考后往下翻答案
输出:10 2
第一次输出10应该没有问题。我们知道取对象属于除了点操作符还可以用中括号,所以第二次执行时相当于arguments调用方法,this指向arguments,而这里传了两个参数,故输出arguments长度为2。
本文通过一个具体的JavaScript代码示例,深入探讨了函数内部this关键字的指向规则以及arguments对象的特性。通过分析两次console.log输出的不同结果,揭示了在不同上下文中this的指向差异及arguments对象的使用细节。
1160

被折叠的 条评论
为什么被折叠?



