【问题标题】:How do you create a pointer to an object property in javascript?如何在 javascript 中创建指向对象属性的指针?
【发布时间】:2014-06-14 05:54:24
【问题描述】:

如果我有这样的对象:

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 是一个原语,但我如何定义一个指向它的变量,然后我可以使用该变量为属性赋值?

【问题讨论】:

标签: javascript


【解决方案1】:

或者,使用函数:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      x = obj.a;
      

      然后设置值:

      x.aa = 3;
      

      【讨论】:

      • 所以我必须通过始终引用直接父对象来保持比属性值高一级?
      • @ChrisG。对于值类型是。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-25
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-09
      相关资源
      最近更新 更多