财产比方法快?需要它的原因

时间:2016-05-04 11:26:07

标签: javascript jquery methods properties

当我谷歌这个问题时,一个人回答说属性比方法快,并给出一个size()length的例子。

他说长度比尺寸快,因为长度是属性。你能告诉我这是对的吗?或者如果你举例,那对我来说会很棒。

4 个答案:

答案 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返回相同的内容并稍微快一些。

来源:http://api.jquery.com/size/