如何合并原型对象中的默认选项

时间:2011-06-06 07:32:12

标签: javascript object prototype merge

我正在寻找一种简单的方法来合并Prototype Class对象中的options对象。

我有一个像这样的父“抽象”类:

var ParentClass = Class.create({

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

和一个扩展ParentClass的子类:

var ChildrenClass = Class.create(ParentClass {

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

所以我们的想法是在父类中有一些默认选项,在子类中有一些默认选项 但是,子类的选项对象应该是父类选项obejct的扩展;

初始化子类时合并两个选项对象的正确方法是什么?

我希望我足够清楚......

谢谢

1 个答案:

答案 0 :(得分:2)

假设在调用子类初始化程序时调用了父类初始值设定项,您可以使用父项初始化的options成员:

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