Javascript是一種Prototype based的語言。
引用mozilla的描述:
基於原型的語言具有所謂原型物件(Prototypical Object)的概念。新物件在初始化時以原型物件為範本獲得屬性。任何物件都可以指定其自身的屬性,在創建時或運行時都可以。而且,任何物件都可以關聯為另一個物件的原型(Prototype),從而允許後者共用前者的屬性。
這裡有提到一個重點,任何物件都可以關聯為另一個物件的原型,這個觀念你可以視為是delegate。
new做了哪些事情
- 建立空的物件與分配記憶體
- this指向
- 執行
- 回傳物件
原型設計的好處
組合的優勢大於繼承
https://www.youtube.com/watch?v=wfMtDGfHWpA
1 | var Animal = { |
1 | var Animal = { |
1 | Object.setPrototypeOf(Cat, Animal); |
Comment