javascript как создать ссылку

Не могли бы вы предложить какие-либо обходные пути для реализации ссылки на переменную с помощью замыканий или каких-либо других уловок?

createReference = function() {
    // TODO: how to implement?
};

var x = 5;
var refX = createReference(x); // could be any parameters needed to implement the logic
x = 6;
alert(refX()); // should alert 6

Как насчет передачи контекста в качестве первого аргумента и передачи имени переменной (в виде строки), а затем как-то оценить это ссылка в предопределенном контексте. Возможно ли это?

Вот более полный сценарий:

createReference = function(context, prop) {
    return function() {
        return context[prop];
    };
};

Provider = function() {
};
Provider.prototype.x = 5;
Provider.prototype.getXRef = function() {
    return createReference(this, 'x');
};
Provider.prototype.incrementX = function() {
    this.x = this.x + 1;
};

var provider = new Provider();
var refX = provider.getXRef();
provider.incrementX();
alert(refX());
5
задан brianpeiris 28 April 2011 в 20:27
поделиться