一、類是一種設計模式,許多語言提供了對於面向類軟件設計的原生語法,js中也有相似的語法,可是和其餘語言中的類徹底不一樣。設計模式
二、類意味着複製函數
三、js並不會像類那樣自動建立對象的副本。設計
四、在繼承或者實例化時,js的對象機制並不會自動執行復制行爲,簡單來講,js中只有對象,並不存在能夠被實例化的類。一個對象並不會被複制到其餘對象,他們會被關聯起來。對象
五、混入模式(不管顯事仍是隱式)能夠用來模擬類的複製行爲,可是一般會產生醜陋而且脆弱的語法,好比顯式僞多態,這會讓代碼更加難懂而且難以維護。繼承
顯式混入其實沒有辦法模擬類的複製行爲,由於對象只能複製引用,沒法複製被引用的對象或者函數自己。若是你修改了共享的函數對象,好比添加了一個屬性,父類和子類都會受到影響。軟件
六、總的來講,在js中模擬類是得不償失的,雖然能解決當前的問題,但會有更多隱患語法