什么是对象成员
对象成员包括属性和方法。当一个被命名的的成员引用了一个函数,该成员就被称为一个“方法”,相反,引用了非函数类型的成员就被成为“属性”。对象成员可以分为两类,实例成员(也成为 own 成员)和原型成员,实例成员直接存在于实例成员中,原型成员则从对象原型继承而来。
嵌套成员
由于对象成员可能包含其他成员,例如不常见的写法:window.location.href。每次遇到点操作符,嵌套成员会导致 JavaScript 引擎搜索所有对象成员。对象成员嵌套越深,读取速度就会越慢。例如执行 location.href 总比 window.loacation.href 要快
缓存对象成员
在必要的时候使用对象成员,尽量避免使用他们。例如,在同一个函数中没必要多次读取同一个对象成员。
function hasEitherClass(element,className1,className2){
return element.className == className1 || element.className == className2;
}
以上代码中,element.className 被读取了两次。很显然,在该函数语句中它的值并未改变,却仍然执行力两次对象成员查找。你可以将值保存在局部变量中来减少一次查找。
function hasEitherClass(element,className1,className2){
var currentClassName = element.className;
return currentClassName == className1 || currentClassName == className2;
}
之前说过查找局部变量更快。
小结
- 嵌套的对象成员会明显影响性能,尽量少用。
- 属性或方法在原型链中的位置越深,访问它的速度就越慢。
- 通常来说,你可以通过把常用的对象成员、数组元素、跨域变量保存在局部变量中来改善 JavaScript 性能,因为局部变量访问速度更快。

1331

被折叠的 条评论
为什么被折叠?



