天天看點

Prototype-oriented Programming和Prototype Pattern 的差別與聯系

來自“dead of winter 寒冬”非常好的說明

面向原型的語言思想跟原型模式是完全一緻的:從同一原型clone出來的對象就是一類對象。Prototype-oriented的語言對這種模式提供了語言級别的支援,即所有"類"的定義都是通過指定該類的一個原型來實作的(Class-Based Programming是通過類結構聲明來描述一類對象,meta-class則是通過構造一個"類對象"來描述一類對象)。每次執行個體話就clone一次原型,然而這種方式會造成資訊的備援:所有對象都持有原型對象的一個clone的副本,而且一旦某一對象被構造,修改原型不會對它造成任何影響,這對于希望在程式中統一改變某一類對象的人來說很不友善。于是,一種變通的方法産生了:引用型原型對象,與之相對,原來的原型對象使用方法被稱為

複制型原型對象。引用型原型對象不再clone原型,而是儲存一個指向原型的指針,當通路屬性時,首先檢查自己的屬性,當查到不存在時,則通過指針向原型索取相應屬性。而引用型原型就是javascript的面向原型特性的實作方式。

<a href="http://blog.csdn.net/dead_of_winter/article/details/1902063">http://blog.csdn.net/dead_of_winter/article/details/1902063</a>

繼續閱讀