建立物件之組合使用建構函式和原型模式

2021-10-09 15:12:57 字數 903 閱讀 3392

建立自定義型別的常見方式,就是組合使用建構函式模式與原型模式。建構函式模式用於定義例項屬性,而原型模式用於定義方法和共享的屬性。結果,每個例項都會有自己的乙份例項屬性的副本, 但同時又共享著對方法的引用,大限度地節省了記憶體。另外,這種混成模式還支援向建構函式傳遞參 數;可謂是集兩種模式之長。

例如:

function

person

(name, age, job)

person.prototype =

}var person1 =

newperson

("nicholas",29

,"software engineer");

var person2 =

newperson

("greg",27

,"doctor");

person1.friends.

push

("van");

alert

(person1.friends)

;//"shelby,count,van"

alert

(person2.friends)

;//"shelby,count"

alert

(person1.friends === person2.friends)

;//false

alert

(person1.sayname === person2.sayname)

;//true

在這個例子中,例項屬性都是在建構函式中定義的,而由所有例項共享的屬性 constructor 和方法 sayname()則是在原型中定義的。而修改了 person1.friends(向其中新增乙個新字串),並不會影響到 person2.friends,因為它們分別引用了不同的陣列。

建構函式建立物件

字面量方式 new 關鍵字 借用建構函式 在記憶體中建立乙個新的空物件。讓 this 指向這個新的物件。執行建構函式裡面的 給這個新物件新增屬性和方法。返回這個新物件 建構函式裡面不需要 return 例項成員 建構函式內部通過this新增的成員,例項成員只能通過例項化的物件來訪問 靜態成員 在建構...

建構函式建立物件

建構函式建立物件 function box name,age 建構函式沒有new object,但是它後台會自動var obj new object this就相當於obj 建構函式不需要返回物件引用,它是後台自動返回的 建構函式也是函式,但函式名第乙個字母要大寫 必須new建構函式名 new bo...

建立物件,建構函式,構造例項

建立物件 doctype html en utf 8 viewport content width device width,initial scale 1.0 document title head 想要得到一系列型別相同結構相似的物件 不管是用字面量還是new object都會得到一些無關聯的物...