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