【问题标题】:How to merge default options in Prototype Objects如何在原型对象中合并默认选项
【发布时间】:2011-06-06 07:32:11
【问题描述】:

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

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

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

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

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

希望我说的够清楚了……

谢谢

【问题讨论】:

    标签: javascript object prototype merge


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 2013-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多