Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么.length不是需要()的方法_Javascript_Methods_Member - Fatal编程技术网

Javascript 为什么.length不是需要()的方法

Javascript 为什么.length不是需要()的方法,javascript,methods,member,Javascript,Methods,Member,在JavaScript中,为什么关键字长度不需要()?似乎所有其他函数,如splice()、shift()都需要括号 长度不是一种方法。这是一种财产。看 调用属性时,不需要括号。 属性是对象本身“知道”的东西。javascript中的数组或字符串知道其长度。方法是需要计算的东西 如果javascript真的需要每次计算字母的长度,那么Length可能是javascript字符串上的一个方法 当从属性中获取值时,您可以假设获取其值比从方法调用中获取值更快。(尽管情况并非总是如此)长度是一个属性,而

在JavaScript中,为什么关键字长度不需要()?似乎所有其他函数,如splice()、shift()都需要括号

长度不是一种方法。这是一种财产。看

调用属性时,不需要括号。 属性是对象本身“知道”的东西。javascript中的数组或字符串知道其长度。方法是需要计算的东西

如果javascript真的需要每次计算字母的长度,那么Length可能是javascript字符串上的一个方法


当从属性中获取值时,您可以假设获取其值比从方法调用中获取值更快。(尽管情况并非总是如此)

长度是一个属性,而不是一个函数。因此,它不需要括号()


当对象发生更改时,将计算并更新length属性,而调用函数length()将在每次调用时计算此值

我们只能推测为什么它是一种普通属性而不是一种方法

但是,
.length
是每个字符串/数组的一个常量值,它在计算时不会修改任何内容(它不像方法那样“执行”),也不会接受任何参数。因此,它很适合作为访问器属性


另外,分配给
.length
允许我们控制数组的大小(缩小/扩展它)。将现有属性用作setter比引入额外的
.setLength(…)
方法更方便(或者至少是惯用的)。

拼接
移位
是基于当前状态和/或其参数进行计算的操作。此外,它们还改变了数组
length
相反,对于给定的数组,它是常量,不需要执行任何操作来检索它。没有必要把它变成一个函数。

添加到我的评论中

JavaScript数组
length
属性返回数组中的元素数。 它总是比数组的最大索引值大一个

如果需要(不建议),可以更改
length
属性

EcmaScript语言规范将
长度
设计为一个属性


因为它是一个
属性
而不是
方法
,而且它不是Javascript@Clyde,“为什么.length不是一个方法”-“因为它是一个属性而不是一个方法”?这是如何回答这个问题的?@chiccodoro我的理解是OP假设长度是一种不需要父母的方法,他问为什么。我想我不是唯一一个这么认为的人interpretation@Pablo你怎么会这么想?阅读问题的标题。从问题标题“为什么长度不是一个方法”-你的回答很明显说明OP已经说明了自己。尝试添加属性和方法之间差异的简单解释。感谢您的解释!我真的很感激!同样,这并不能解释为什么,OP已经声明长度不是一个函数:“为什么长度不是一个方法”这是唯一真正回答OP问题的答案(当然除了我的:-)