[js]js設計模式-原型模式
阿新 • • 發佈:2018-02-05
gpo create con 數據 cto _proto_ 沒有 prot src
構造函數模型- 對象的屬性和方法每人一份
function createJs(name, age) { this.name = name; this.age = age; this.writeJs = function () { console.log(this.name, this.age) } } p1 = new createJs("maotai", 22); p1.writeJs(); p2 = new createJs("maotai2", 23); p2.writeJs(); console.log(p1.writeJs===p2.writeJs);
原型模式- 對象的方法所有人共享一份
function createJs(name, age) { this.name = name; this.age = age; } createJs.prototype.writeJs = function () { //這個方法被所有對象共享 console.log(this.name, this.age) }; p1 = new createJs("maotai", 22); p1.writeJs(); p2 = new createJs("maotai2", 23); p2.writeJs(); console.log(p1.writeJs === p2.writeJs); //true ## 小結 類是函數, 函數有prototype 實例都是對象, 對象有__proto__屬性 /* * * 1.每個函數數據類型(普通函數 類)都有個prototype屬性,這個屬性是一個對象數據類型的值 * 2.prototype上的瀏覽器天生給他加上了個constructor(構造函數),屬性只是類本身 * 類:prototype * constructor * __proto__ * 3.每個對象都有__proto__屬性 * 4.對象的__proto__指向所屬類的原型 * 5.object原型上沒有__proto__ * */
[js]js設計模式-原型模式