在下文中,第二个和第三个控制台输出似乎相互矛盾:
function test() {
console.log(arguments); // -> ["my", "arguments"]
console.dir(this); // -> test function with arguments property set to null
console.log(this.arguments); // -> ["my", "arguments"]
}
test.call(test, 'my', 'arguments');
根据我的评论,检查 show 上的属性arguments
,同时明确记录 show 。this
null
this.arguments
["my", "arguments"]
this
当您以这种方式调用函数时,究竟是什么?我没想到this.arguments
会包含调用参数!