## 對象專題
> * 減少不必要的對象創建:
> * 創建對象本身對性能影響并不大,但由于`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;
> }
> ~~~