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

How to merge default options in Prototype Objects

本文关键字:对象 默认 选项 原型 何合并 合并      更新时间:2023-09-26

我正在寻找一种简单的方法来将选项对象合并到原型类对象中。

我有一个像这样的家长"抽象"类:

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 || {});
    }   
});

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

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

我希望我足够清楚。。。

感谢

假设父类初始化器在调用子类初始化器时已经被调用,则可以使用由父类初始化的options成员:

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