如何在javascript中创建指向对象属性的指针?

时间:2014-04-28 15:36:18

标签: javascript

如果我有这样的对象:

obj = {a:{aa:1}, b:2};

我想创建一个快捷变量(指向obj.a.aa的指针)x,如下所示:

x = obj.a.aa;

然后我想使用x将值3分配给obj.a.aa:

x = 3;  // I would like for obj.a.aa to now equal 3
console.log(obj.a.aa); // 1  (I want 3)

如何将x设置为导致值3进入obj.a.aa?

我理解obj.a.aa是一个原语,但是如何定义一个指向它的变量,然后我可以使用该变量为属性赋值?

3 个答案:

答案 0 :(得分:8)

你不能使用x = value,因为它不会保留任何引用,只是一个副本。您必须引用父分支才能这样做:

x = obj.a;

然后设置值:

x.aa = 3;

答案 1 :(得分:3)

或者,使用函数:

var set_x = function(val){
  obj.a.aa = val;
}

答案 2 :(得分:0)

当然,你不能 - 你不试图修改作为对象属性名称的引用,而是试图修改对象。要修改对象,您需要对该对象的引用。

话虽如此,这可能是一种创造性的方式。创建一个函数,该函数将对象作为构造函数,并为函数提供修改对象引用的客户= setter或方法。这样的事情可能有用。