加载中...

对象专题


  • 减少不必要的对象创建:
    • 创建对象本身对性能影响并不大,但由于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; 
        }

还没有评论.