当我谷歌这个问题时,一个人回答说属性比方法快,并给出一个size()
和length
的例子。
他说长度比尺寸快,因为长度是属性。你能告诉我这是对的吗?或者如果你举例,那对我来说会很棒。
答案 0 :(得分:4)
size
在内部调用长度
//http://code.jquery.com/jquery-latest.js
// The number of elements contained in the matched element set
size: function() {
return this.length;
},
因此,如果您使用的是长度,那么您将避免一次额外的方法调用。 Jquery docs说:
.size()方法在功能上等同于.length属性; 但是, .length属性是首选,因为它没有 函数调用的开销。
答案 1 :(得分:2)
我假设您想要获取String的长度或数组中元素的数量。
size()
不是Array或String对象的方法。因此,如果它存在某个库,或者您自己已将此方法添加到相应的原型中。另一方面,length
是一个默认属性,并且(应该)存在于任何JS运行时中。
除非你不能使用长度,否则size函数只会增加不必要的开销,我会选择属性。
检查以下链接: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/prototype
答案 2 :(得分:1)
如果您将阅读length
属性,则只需要访问对象属性所需的时间。
但是,如果您将调用size()
,那么首先将调用一个函数,此函数将在内部读取length
属性,然后将该值返回给调用者。
你可以清楚地看到你在两种情况下做同样的事情。但是如果你调用函数,那么它将包括调用函数的时间+返回该值..
答案 3 :(得分:0)
根据jQuery文档,Length返回相同的内容并稍微快一些。