属性比方法快?需要理由

Property is faster than method? Need reason for it

本文关键字:理由 方法 属性      更新时间:2023-09-26

当我搜索这个问题时,一个人给出的答案是属性比方法快,并给出了size()length的一个例子。

他说,长度比尺寸快,因为长度是财产。你能告诉我这是正确的吗?或者,如果你举个例子,那对我来说就太好了。

size内部调用长度

//http://code.jquery.com/jquery-latest.js
// The number of elements contained in the matched element set
        size: function() {
                return this.length;
        },

因此,如果您使用的是长度,那么您就避免了一个额外的方法调用。Jquery文档说:

.size()方法在功能上等效于.length属性;但是,.length属性是首选,因为它没有函数调用的开销。

我假设您想要获得字符串的长度或数组中的元素数量。

size()不是Array或String对象的方法。因此,如果它存在某个库,或者您自己已经将此方法添加到相应的原型中。length是默认属性,(应该)存在于任何JS运行时中。

除非你不能使用长度,否则size函数只会增加不必要的开销,我会选择这个属性。

检查以下链接:https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/prototypehttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/prototype

如果要读取length属性,则只需要访问对象属性所需的时间。

但是,如果您将调用size(),那么首先将调用一个函数,该函数将在内部读取length属性,然后将该值返回给调用者。

你可以清楚地看到,在这两种情况下,你都在做同样的事情。但如果你调用函数,那么它将包括调用函数的时间+返回该值的时间。。

Length返回相同的东西,并且根据jQuery文档稍微快一点。

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