【JavaScript】類和物件
阿新 • • 發佈:2019-02-17
類和物件
如果使用非面向物件的方法建立多個類似物件,情形是這樣的:
- 一、非面向物件
//第一個學生
var stu1=new Object();
stu1.name=...
stu1.age=...
stu1.score=...
...
//第二個學生
var stu2=new Object();
stu2.name=...
stu2.age=...
stu2.score=...
//第三個學生
...
//第n個學生
...
不難看出來,如果我們做一個學校的校務管理系統,就學生子模組而言,光是生產出來幾千個學生都得耗費我們很大的精力。這也就是非面向物件不好的地方:宣告多個相似的類時,不僅開發工作量大,後期運維一樣讓人痛苦不堪。解決這類問題我們需要面向物件的方法。不再囉嗦面向物件的概念了,需要理解概念的同學可以自行參考 《設計模式之面向物件再回首》 進行腦補。
- 二、 面向物件
這裡就工廠模式和建構函式兩種方法進行闡述(因為對這兩種方法比較迷糊)。
- 1、工廠模式
Function createObject(name,age)
{
Var obj=new object();
obj.name=name;
obj.age=age;
obj.run=function()
{
Return this.name +this.age+'loading...';
}
Return obj;
}
Var box1=createObject('joker' ,99);
var box2=createObject('shusheng',88);
alert(box1.run());
alert(box2.run());
- 2、建構函式
function createobject(name,height)
{
this.name=name; //例項屬性
this.height=height; //例項屬性
this.run=function() //例項方法
{
Return this.name+this.height;
}
}
var b1=('hsu',12);
var b2=('123',234e);
alert(b1);
alert(b2);
- 3、工廠模式和建構函式的異同
- 1)相同點:
- 工廠模式和建構函式都是通過傳參的形式去建立多個相似的物件,或者說是先創建出物件建立的模板,需要的時候直接用模板搭建出來物件的骨架,再通過傳參創建出來不同的但是相似的物件。通過工廠模式和建構函式建立物件,都需要返回值,反則無法建立物件。
- 2)不同點:
- 通過工廠模式創建出來的物件是無法被區分的,但是使用建構函式創建出來的物件是可以被識別出來的。
- 使用工廠模式建立物件,必須return相當於“形參”的函式obj,否則無法建立物件。
- 使用建構函式建立物件,不需要顯式建立(new)、可直接將屬性和方法賦值給this、不需要return建立的例項
總而言之,通過面向物件的方法建立物件,不僅可以減輕開發的工作量,還對運維的工作量有不可估量的價值。
感謝您的寶貴時間,祝生活愉快,謝謝。——書生