0

我想将一个类中的一个对象扩展为该类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");
4

1 回答 1

1

只需使用

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

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

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

于 2013-01-30T23:13:21.337 回答