你如何在javascript中给出变量引用?

Eri*_*ric 4 javascript variables

我想在javascript中给出变量引用.

例如,我想这样做:

a=1
b=a
a=2
Run Code Online (Sandbox Code Playgroud)

并且b = 2,并相应地改变为a.

这可能在JavaScript中?如果不是有办法像a.onchange = function(){b = a}?

我想做的是创建一个像makeobject这样的函数,它创建一个对象并将它放在一个数组中,然后返回它

function makeobject() {
   objects[objects.length] = {blah:'whatever',foo:8};
   }
Run Code Online (Sandbox Code Playgroud)

所以我能做到

a=makeobject()
b=makeobject()
c=makeobject()
Run Code Online (Sandbox Code Playgroud)

后来在代码中做了

for (i in objects) {
   objects[i].blah = 'whatev';
}
Run Code Online (Sandbox Code Playgroud)

并且还改变a,b和c的值

Cha*_*ion 5

您可以使用在大多数浏览器中都能正常运行的新对象文字语法来解决此问题.

var o = {
    _a : null,
    get a() { return this._a; },
    set a(v) { this._a = v; },
    get b() { return this._a; },
    set b(v) { this._a = v; }
};

o.a = 2;
o.b = 3;
o.a = 4;
alert(o.b); // alerts 4
Run Code Online (Sandbox Code Playgroud)

另一种方法是创建自己的引用对象.

function Ref(obj, name, otherName) {
    this.obj = obj;
    this.name = name;
    this.otherName = otherName;
}

Ref.prototype.assign = function (v) {
    this.obj[this.name] = this.obj[this.otherName] = v;
}

var o = {
    a : 1,
    b : 4
};

var ref = new Ref(o, 'a', 'b');
ref.assign(3);

alert(o.b);
Run Code Online (Sandbox Code Playgroud)