建立物件之原型模式

2021-07-26 11:30:06 字數 1059 閱讀 3897

1,原型模式建立物件

原型也是乙個物件。我們建立的函式都有乙個prototype屬性,這個屬性指向乙個物件,這個物件包含有特定函式建立的例項共享的屬性和方法。

使用原型物件可以使所有的例項共享屬性和方法,而不必再建構函式中初始化屬性和方法。

function person();

person.prototype

.name="qi"

; person.prototype

.age=22

; person.prototype

.job="cooder"

; var person1=new person();

var person2=new person();

console.log(person1.name); //qi

console.log(person2.name); //qi

上面我們把所有的屬性都新增到建構函式的prototype上面,建構函式變成了乙個空的函式。例項訪問到的屬性是共享的。

很容易看到原型模式有不足的地方,結果所有例項在預設情況下都將取得相同的屬性值。雖然這會在某種程度上帶來一些不方便,但還不是原型的最大問題。

當原型上的屬性是乙個引用型別的時候,會有意想不到的結果。

function person();

person.job=["coder","son","parent"];

var person1=new person();

var person2=new person();

person1.job.push("bigv");

console.log(person1.job); //["coder","son","parent","bigv"]

console.log(person2.job); //["coder","son","parent","bigv"]

可以看到我們在person1上修改屬性會影響到person2上面的job屬性。這顯然不是我們想要的。因為person1的job屬性和person2的job屬性是共享的。

原型模式 建立物件

原型模式 操作 先建立好乙個原型物件,然後通過clone 原型物件來建立新的物件。這就免去了類建立時重複的初始化操作。原型模式適用於大物件的建立。如果每次new 就會消耗很大,原型模式僅需要記憶體拷貝即可。index.php 中 prototype new imooc canvas prototyp...

建立型模式之原型模式

功能 用原型例項指定建立物件的種類,並通過拷貝這些原型建立新的物件。原型模式其實就是從乙個物件建立另外乙個可定製的物件,而且不需知道任何建立的細節。優點 一般在初始化的資訊不發生變化的情況下,轉殖是最好的辦法,既隱藏了物件建立細節,又提高效能。其等於是不用重新初始化物件,而是動態地獲得物件執行時的狀...

建立型模式之原型模式

1 概述 通過給出乙個原型物件來指明所要建立的物件的型別,利用這個原型物件來建立更多相似的統一型別的物件但又不是同乙個物件 世界上可能有千千萬萬個人,但你就是你,你是獨一無二的,顏色不一樣的花火,你是最棒的 因為如果直接建立物件的話,代價可能就會比較大,它屬於建立型模式的一種,它提供了一種建立物件的...