属性比方法快?需要理由
Property is faster than method? Need reason for it
当我搜索这个问题时,一个人给出的答案是属性比方法快,并给出了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/
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- toBoolean方法类似于toString
- 如何在单击复选框后调用控制器方法
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 递归使用 eval() 是检查程序执行的好方法吗?
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- toLocaleDateString和toLocaleString方法不尊重机器时区
- 有条件更新d3.js力图中节点的最佳方法
- 属性比方法快?需要理由
- 是否有一个好的方法来管理由CDN提供的javascript依赖关系