javascript物件導向(3)--極簡主義法minimalist approach

原本的程式,我們產生實例最常見的方法就是 new function ,而使用極簡主義法之後,我們不再這麼做,範例如下

var Parent = {
    createNew : function(){
       var obj = {};//new object()
       obj.age = 40;
       obj.name = "龍傲天";
       return obj;
    }
};

var parent = Parent.createNew();
log(parent.name); //龍傲天

從以上的程式我們可看到,我們使用var obj = {};直接產生一個實例,並為其附加方法屬性,並在最後返回這個實例。

那極簡主義法怎麼撰寫繼承呢?這也很簡單,我們的子類別直接賦於父類別的實例就行,範例如下:

var Chilren = {
    species : "人類",
    createNew : function(){
        var obj = Parent.createNew();//直接賦於父類別實例
        obj.age = 5;
        obj.getSpecies = function(){return Chilren.species};
        obj.setSpecies = function(species){Chilren.species = species};
        return obj;
    } 
};

極簡主義法還有一個好處,我們可以很輕鬆的設定靜態屬性

var childrenImpl = Chilren.createNew(); 
var childrenImpl2 = Chilren.createNew(); 
log(childrenImpl.getSpecies()); //人類
log(childrenImpl2.getSpecies());//人類
childrenImpl.setSpecies("妖精");
log(childrenImpl.getSpecies());//妖精
log(childrenImpl2.getSpecies());//妖精

從上述的例子中,因為Children.species資料儲存在實例外,所以某個實例修改屬性後,全部的資料會修正。

 

 

 

 


因為很多文章是過往自己搜集的資料、圖片,如有侵權疑慮請告知,將立即下架刪除。