合并嵌套类并保持值

时间:2013-01-30 22:32:30

标签: javascript class object nested

我想将类alpha.helper中的一个对象扩展为Helper类的实例,每次调用alpha.helper函数时都会增加设置的难度,因为我需要传输alpha.imperfect的当前值。

var _ = require("underscore");

var Helper = function(imperfect){

    var helper = {};

    helper.use = function(item){
        console.log(item);
        console.log(imperfect);
        return false;
    }

    helper.bar = function(item){
        console.log(item);
        console.log(imperfect);
        return false;
    }

    return helper;

}

var Alpha = function(){

    var alpha = {};

    alpha.imperfect = {}    

    alpha.add = function(item){
        _.extend(alpha.imperfect, item);
    }

    alpha.helper = function(){
        var helper = new Helper(alpha.imperfect);
        return helper;
    };

    return alpha;

}

var alpha = new Alpha();

alpha.add({"name":"thomas"});

alpha.add({"something":"seven"});

alpha.helper.use("foo");

1 个答案:

答案 0 :(得分:1)

只需使用

alpha.helper = new Helper(alpha.imperfect);
  

每次调用alpha.helper函数时都会增加设置的难度,因为我需要传输alpha.imperfect的当前值。

没有。 helper始终可以访问当前imperfect值,因为它仍然引用同一个对象。