6 2 3 原型模式

2022-01-23 12:29:40 字數 833 閱讀 9772

我們建立的每乙個個函式都有prototype(原型)屬性,這個屬性是乙個指標,指向乙個物件,而這個物件的用途是包含可以由特定型別的所有例項共享的屬性和方法。如果按照字面的意思來理解,那麼prototype就是通過呼叫建構函式而建立的那個物件例項的原型物件。使用原型物件的好處是可以讓所有物件例項共享它所包含的屬性和方法。換句話說,不必在建構函式中定義物件例項的資訊,而是可以將這些資訊直接新增到原型物件中,例如:

function person(){}

person.prototype.name="tom";

person.prototype.age=29;

person.prototype.job="software engineer";

person.prototype.sayname = function();

var person1 = new person();

person1.sayname();//"tom";

var person2 = new person();

person2.sayname();//"tom"

alert(person1.sayname == person2.sayname);//true

在此,我們將sayname()方法和所有屬性直接新增到了person的prototype屬性中,建構函式變成了空函式。即便如此,也仍然可以通過呼叫建構函式來建立物件,而且新物件還會具有相同的屬性和方法。但與建構函式模式不同的是,新物件的這些屬性和方法是由所有例項共享的。換句話說,person1和person2訪問的都是同一組屬性和同乙個sayname()函式。要理解原型模式的工作原理,必須新理解ecmascript中原型物件的性質。

建立型模式 原型模式

使用原型例項指定建立物件的種類,並且通過轉殖這些原型建立新的物件 原理是將乙個原型物件傳給要發動建立的物件,該物件通過請求原型物件轉殖自己來建立過程 轉殖方法 public prototype clone jdk中為我們提供了轉殖的方法clone 從object繼承下來,乙個物件要實現轉殖,需要實現...

建立型模式 原型模式

原型 prototype 模式主要用於建立物件的轉殖,通常其最簡單的形式就是採用自定 clone 函式並 傳入物件引數以返回此物件的乙個副本,這在 python 實作上可使用內定 copy.cop y 或 copy.deepcopy 函式來達到此目的。當已有乙個物件但對此物件的某些部分會被變更卻又想...

原型模式 建立型模式

文章首發個人部落格 如果我們有乙個類 sheep 它裡面有兩個屬性,名稱 name 年齡 age 現在我們有乙個它的例項 s1 我們需要按照這個例項的屬性再去建立兩個物件。1 sheep data public class sheep 2 main public class main 原型模式 用原...