JS 物件導向程式設計

2022-08-01 07:39:09 字數 1926 閱讀 3075

creatmain(name, age, company)

return people

},open()

}

judgepro(obj,pro)else

}else

}

//原生

object.defindproperty(person.prototype,'grulfriend',)

//公升級

//建立自定義型別的最常見方式,就是組合使用建構函式模式及與原型模式

//建構函式模式用於定義示例屬性, 二`原型模式用於定義方法和共享的屬性, 結果, 每個是例項都會有自己的乙份例項屬性的副本, 但同時有共享著對方法的引用, 最大限度的節省了記憶體

//另外,這種混合模式還支援想建構函式傳遞引數; 可謂是集兩種模式之長 ​​

//建構函式模式

function person(name, age)

}let wanzhang = new person("萬章", 10)

let yinshi = new person("銀時", 20)

​//原型模式

function person2(){}

person2.prototype =

}let wanzhang2 = new person2()

let yinshi2 = new person2()

​//組合模式

function person3(name ,age)

person3.prototype =

}let wanzhang3 = new person3("萬章3", 13)

let yinshi3 = new person3("銀時3", 23)

​// 這種建構函式與原型混成的模式, 是目前在ecmascript中使用最廣泛、認同度最高的一種建立自定義型別的方法. 可以說, 這是用來定義引用型別的一種預設模式

// 組合模式注意點:

// .對於物件內後期需要修改的引用型別的繼承的值, 這個值以建構函式的this.屬性名稱的方式來思想基礎, 這樣可以避免某個例項操作繼承來的物件而引起其他例項的變化

// 動態原型模式把所有資訊都很早在了建構函式中, 而通過在建構函式中初始化原型(僅在必要的情況下),又保持了同時使用建構函式和原型的優點. 可以通過檢查某個應該存在的方法是否有效, 來決定是否餘姚初始化原型

​// 動態原型模式

function person(name ,age)}}

let wanzhang = new person("萬章", 18)

let yinshi = new person("銀時", 20)

​// 在這裡只有sayname()方法不存在的情況下, 才會將它新增到原型中, 這段**只會在初次呼叫建構函式時才會執行. 此後, 原型已經完成初始化, 不需要在做什麼修改了

//這種模式的基本思想時建立乙個函式, 改函式的作用僅僅是封裝建立物件的**, 然後再返回新建立的物件; 但從表面上看, 這個函式又很像是典型的建構函式

​//寄生建構函式模式

​function person(name, age)

return o

}let wanzhang = new person("萬章", 18)

let yinshi = new person("銀時", 20)​​

//再這個例子中, person 函式建立了乙個新物件, 並以相應的屬性和方法初始化物件, 然後又返回了這個物件. 除了使用new 操作符並把使用的包裝函式叫做建構函式之外, 這個模式跟工廠模式其實一模一樣

JS物件導向程式設計 物件

一般面向過程的寫法都是寫很多function,壞處 1.復用不好 2.函式名稱容易重複衝突 下面介紹物件導向的寫法 在js中每個函式function都是乙個物件。比如,下面這個就是乙個物件,我們在使用的時候就可以當作物件來使用。function helloworld 使用下面測試函式 呼叫該函式就會...

js物件導向程式設計

js物件導向程式設計 js使用建構函式作為物件的模板 var vehicle function 生成物件例項 var v new vehicle v.price 1000 傳引數的建構函式 var vehicle function value var v new vehicle 500 protot...

js物件導向程式設計

1.直接建立物件 集中例項化問題 2.工廠模式 物件識別問題 3.建構函式模式 例項化物件的方法在每個例項上都要建立一遍 建構函式模式 function student name var student1 new student 張三 每個例項物件對應乙個引用,所以例項化物件時,所有屬性與方法都會重...