1. 程式人生 > >【JavaScript】類和物件

【JavaScript】類和物件

類和物件

如果使用非面向物件的方法建立多個類似物件,情形是這樣的:

  • 一、非面向物件
//第一個學生
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建立的例項
    總而言之,通過面向物件的方法建立物件,不僅可以減輕開發的工作量,還對運維的工作量有不可估量的價值。
    感謝您的寶貴時間,祝生活愉快,謝謝。——書生