我想知道为什么对字符串(.length
,.toUpperCase()
等)的某些方法调用不会在调用结束时使用括号而其他方法会这样做。
诸如.toUpperCase()
之类的方法实际上是在改变变量的值,而.length
之类的方法只报告有关变量的信息吗?
答案 0 :(得分:1)
如果它最后没有括号,则它是property,而不是方法。
.length
是一个返回数组或字符串长度的属性。
.toUpperCase()
是一个使String对象中的所有字母都为大写的方法。
你对'"报告信息"之间的区别是对的。和"改变变量的值":这是属性和方法之间的区别。方法执行操作,属性是关于对象的一条信息。
答案 1 :(得分:-1)
这只是设计决策,我写过的每一种语言都有这些困境(通常还有一些不一致的地方)。字符串操作应该就地吗?像length
这样的东西应该是属性还是方法?等等......没有简单的答案,所以它通常因语言而异,甚至在语言中也是如此。
要清楚,JavaScript中的每个方法都是可执行的,只是有些是方法而有些是属性,你需要知道哪个是哪个。