- 减少不必要的对象创建:
- 创建对象本身对性能影响并不大,但由于
JAVASCRIPT
的垃圾回收调度算法,导致随着对象个数的增加,性能会开始严重下降(复杂度O(n^2)
)。
- 如常见的字符串拼接问题,单纯的多次创建字符串对象其实根本不是降低性能的主要原因,而是是在对象创建期间的无谓的垃圾回收的开销。而
Array.join
的方式,不会创建中间字符串对象,因此就减少了垃圾回收的开销。- 复杂的
JAVASCRIPT
对象,其创建时时间和空间的开销都很大,应该尽量考虑采用缓存。- 尽量作用
JSON
格式来创建对象,而不是var obj=new Object()
方法。前者是直接复制,而后者需要调用构造器。- 对象查找
- 避免对象的嵌套查询,因为
JAVASCRIPT
的解释性,a.b.c.d.e
嵌套对象,需要进行4
次查询,嵌套的对象成员会明显影响性能。- 如果出现嵌套对象,可以利用局部变量,把它放入一个临时的地方进行查询。
对象属性
访问对象属性消耗性能过程(
JAVASCRIPT
对象存储)。
- 先从本地变量表找到
对象
。- 然后遍历
属性
。- 如果在
当前对象
的属性列表
里没找到。- 继续从
prototype
向上查找。且不能直接索引,只能遍历。
function f(obj) { return obj.a + 1; }