介紹
創(chuàng)建自定義類型的最常見方式,就是組合使用構(gòu)造函數(shù)模式和原型模式。構(gòu)造函數(shù)模式用于定義實(shí)例屬性,而原型模式用于定義方法和共享的屬性。結(jié)果,每個(gè)實(shí)例都會(huì)有自己的一份實(shí)例屬性的副本,但同時(shí)又共享著對(duì)方法的引用,最大限度的節(jié)省了內(nèi)存。另外,這種混成模式還支持向構(gòu)造函數(shù)傳遞參數(shù)。
如何實(shí)現(xiàn)
function Person(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
this.fruit = ['apple', 'banana', 'orange'];
}
Person.prototype = {
constructor: Person,
sayName: function() {
alert(this.name);
}
};
var person = new Person('tom', 24, 'teacher');
總結(jié)
組合使用構(gòu)造函數(shù)模式和原型模式創(chuàng)建對(duì)象是目前在ECMAScript
中使用最廣泛、認(rèn)同度最高的一種創(chuàng)建自定義類型的方法。可以說(shuō),這是用來(lái)定義引用類型的一種默認(rèn)模式。