参数对象返回意外值

时间:2015-11-30 03:05:35

标签: javascript

为什么arguments对象在这里给出了意想不到的结果

console.log("the arguments are" + arguments);  
console.log(arguments); // returns the correct arguments

第一个返回the arguments are[object Arguments] 而第二个返回正确的论点......为什么会这样?当我用它连接一个字符串?

1 个答案:

答案 0 :(得分:1)

因为console.log在后​​台做了不同的事情。你的第一个电话

console.log("Arguments: "+arguments);

将在后台调用toString方法。第二次电话

console.log(arguments);

正确打印对象,导致它未转换为字符串(未调用toString方法)。

执行此操作时,您获得与第一个相同的结果:

console.log(arguments.toString());

您可能想要做的是:

console.log("Arguments:", arguments);

您可以通过用逗号分隔它们来添加任意数量的对象。