javascript - 如何通过引用设置值对象

标签 javascript object

我想通过引用对象 a 将值 3 设置为 a.b

示例:

var a ={};
a.a =1;
a.b =2;
var x = a.b;
alert (a.b);// show 2
x =3;
alert (a.b); // I want to see in this line 3 instead 2.

非常感谢

我怎样才能做到这一点?

最佳答案

你不能这么做。由于 2 是一个基元,因此您没有对它的引用,而 x 实际上具有值 3

你可以做的是提供一个函数来修改父对象的属性:

var a = {
   a: 1,
   b: 2,
   setB: function(value) {
      this.b = value;
   }
}

a.setB(3);
console.log(a.b);

我认为这更干净。

回答你的编辑,是的,有点。这取决于你在做什么。如果您有以下情况:

var a = {
   a: {value: 1},
   b: {value: 2},
};

var x = a.b;
x = {value: 3};

那么 a.b 仍然是 {value: 2},因为您所做的只是使 x 指向不同的对象。但请注意,x 指向 a.b,它是一个对象,因此,如果您执行 x.value = 3; a.b 现在有 {value: 3}

关于javascript - 如何通过引用设置值对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16043336/

相关文章:

javascript - 如何设置 Ajax POST 请求以防止空响应出现 "no element found"?

Javascript 为多个元素设置 CSS 类(一个元素集,其余元素未设置)

javascript - 如何将浏览器控制台日志保存到我的数据库而不覆盖 console.log

Python:对象没有metadata_parser 0.6.6的属性

javascript - 将值分配给另一个具有动态分配键的对象内的对象

java - 序列化包含对象 ArrayList 的对象

c# - 将根 XML 元素反序列化为数组

javascript - 如何在 Meteor 中使用参数延迟函数?

javascript - AngularJS 和 FancyTree : Events firing, 但具有未定义的参数

java - java对象是否共享内存中的方法位置?