在JavaScript中,为什么关键字长度为require()?似乎所有其他函数,如splice(),shift()都需要括号。
答案 0 :(得分:4)
我们只能推测为什么它是一个普通的财产,而不是一种方法。
但是,.length
是每个字符串/数组的常量值,它在计算时不会修改任何内容(它不是"执行"就像方法一样),并且无论如何它不会采取任何参数。因此它很适合作为访问者财产。
此外,分配给.length
允许我们控制数组的大小(缩小/扩展它)。使用现有属性作为setter比引入额外的.setLength(…)
方法更方便(或者至少是惯用)。
答案 1 :(得分:2)
长度不是一种方法。这是一个属性。见MDN
调用属性时,不需要括号。 属性是对象“自我”知道的东西。 javascript中的数组或字符串知道它的长度。方法需要计算。
如果javascript确实需要在每次想要长度时计算字母,那么长度可能是javascript字符串的一种方法。
从属性中获取值时,您可以假设获取其值的速度比从方法调用获取值的速度快。 (虽然情况并非总是如此)
答案 2 :(得分:1)
长度是属性,而不是函数。因此它不需要括号()。
在对象更改时计算并更新length属性,而调用函数length()将在每次调用时计算此值。
答案 3 :(得分:1)
splice
和shift
是根据当前状态和/或参数计算内容的操作。此外,他们改变阵列。相比之下,length
对于给定数组是常量,没有操作需要检索它。没有必要使它成为一种功能。
答案 4 :(得分:1)
添加到我的评论
JavaScript数组length
属性返回数组中的元素数。
它始终大于数组的最大索引值
如果需要(不建议),可以更改length
属性
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/length
EcmaScript语言规范,将length
设计为属性。