2011-06-06 39 views
2

我正在尋找一種簡單的方法來合併Prototype Class對象中的選項對象。如何合併原型對象中的默認選項

我有一個父「抽象的」類像這樣:

var ParentClass = Class.create({ 

initialize : function(someattributes, options){ 
     this.someattributes = someattributes; 
     this.options = Object.extend({ 
       foo : "foostring", 
       bar : 1337 
    }, options || {}); 
    } 
}); 

和延伸父類作爲這樣的孩子類:

var ChildrenClass = Class.create(ParentClass { 

initialize : function($super, someattributes, options){ 
     $super(someattributes, options); 
     this.options = Object.extend({ 
       wheez : "wheezstring", 
       bling : 123456 
    }, options || {}); 
    } 
}); 

這樣的想法是有父一些默認選項類和子類 中的一些默認選項,但子類選項對象應該是父類選項obejct的擴展;

當子類被初始化時,合併兩個選項對象的正確方法是什麼?

我希望我足夠清楚......

感謝

回答

2

假設父類的初始化將被稱爲由子類初始化被調用的時候,你可以使用options構件由父母初始化:

Object.extend(Object.extend(this.options, { 
    wheez: "wheezstring", 
    bling: 123456 
}), options || {}); 
+0

所以很明顯:)非常感謝 – azpublic 2011-06-06 11:46:45