0

の現在の値を転送する必要があるため、関数が呼び出されるたびにこれを設定するのが難しくalpha.helperなります。Helperalpha.helperalpha.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.imperfect の現在の値を転送する必要があるため、alpha.helper 関数が呼び出されるたびにこれを設定するのはさらに困難です。

いいえ。 は同じオブジェクトを参照しているためhelper、常に現在の値にアクセスできます。imperfect

于 2013-01-30T23:13:21.337 に答える