我正在对Angular中的某些内容进行故障排除,最终会检查Object.length
。结果是1.它的字符串表示形式不显示任何参数。我知道第一个参数被使用了。
var obj = new Object({ a : 27 });
Object
's constructor function lists the argument as optional.
document.write(Object.length);

那么为什么/如何计算?
答案 0 :(得分:8)
函数的长度是声明的参数的数量,不包括任何rest参数。
来自MDN:
length是函数对象的属性,表示有多少 函数期望的参数,即形式参数的数量。 此数字不包括rest参数。
There's exactly one for the Object
constructor,可选的包装值。
此外,在Object函数的特定情况下,the ES spec explicitly mandates it should have a length of 1:
除了内部属性和length属性(其值为1)
(对于所有采用rest参数的函数,似乎都这样做,例如Array
或fromCharCode
)
请注意,浏览器中本机函数的(implementation dependent)字符串表示不一定显示正式参数。