●Object構造函數
●對象字面量
●工廠模式
●構造函數模式
●原型模式
●動態原型模式
●寄生構造函數模式
●穩妥構造函數模式
●Object構造函數
●對象字面量
使用上述兩者的方法會有個明顯的缺點:使用同一個接口創建很多對象,會產生大量的重復代碼。
●工廠模式(早期人們使用工廠模式來解決上述兩者方法存在的缺點問題,但是工廠模式有個缺點就是沒有解決對象識別的問題(即怎樣知道一個對象的類型))
●構造函數模式(分為原生構造函數(如Object、Array等)和自定義構造函數)
記住:自定義構造函數要善用this方法!!!
自定義構造函數
上述的工廠模式Person()函數和自定義構造函數createPerson()存在以下不同之處,且以這種方式定義的構造函數是定義在Global對象(在瀏覽器中是window對象)中:
構造函數始終都應該以一個大寫字母開頭,而非構造函數則應該以一個小寫字母開頭。
構造函數屬性(constructor):
對象的constructor屬性最初用來標志對象類型的。但是,提到檢測對象類型,還是instanceof操作符要更可靠一些。
但是工廠模式有個缺點就是沒有解決對象識別的問題(即怎樣知道一個對象的類型),如上通過instanceof構造函數返回true,而工廠模式返回false
創建自定義的構造函數意味著將來可以將它的實例標識為一種特定的類型;而這正是構造函數模式勝過工廠模式的地方。