var length = 20; function fn() { console.log(this.length); } var obj = { length: 10, method: function(fn) { fn(); arguments[0](); } }; obj.method(fn, 1,"aa");
时间: 2024-02-14 19:09:43 浏览: 168
js console.log打印对像与数组用法详解
这段代码的输出结果是什么?
答案是: 20 和 3。
代码中定义了一个全局变量 length,并定义了一个函数 fn,该函数打印出 this.length 的值。然后定义了一个对象 obj,该对象包含了一个属性 length 和一个方法 method,方法中执行了两次 fn 函数,第一次直接调用 fn 函数,此时 fn 函数中的 this 指向的是全局对象,因此输出 20;第二次通过 arguments[0]() 的方式调用 fn 函数,此时 fn 函数中的 this 指向的是 arguments 对象,因此输出 3(因为 arguments 对象的长度为 3)。
阅读全文