Javascript 如何获取基元值的引用?
做点像Javascript 如何获取基元值的引用?,javascript,types,properties,reference,primitive,Javascript,Types,Properties,Reference,Primitive,做点像 var number = 12345; var obj = {}; 不管怎样,现在让我们想想obj对数字的引用。 所以我想这样做 obj.look ((((((some operator or function to get a reference of number ))))) number 我希望它是: not方法(如obj.look()) 但可以在属性中引用(如obj.look) 我要问的是如何获得原始值的引用。 我相信一定有办法。请帮帮我 您可以使用: v
var number = 12345;
var obj = {};
不管怎样,现在让我们想想obj对数字的引用。所以我想这样做
obj.look ((((((some operator or function to get a reference of number ))))) number
我希望它是:
我相信一定有办法。请帮帮我
var编号=12345;
var obj={};
Object.defineProperty(obj,“look”{
得到(){
返回号码;
},
设置(值){
数字=数值;
}
});
编写(obj.look+“
”);
obj.look='abc';
文件。书写(编号)代码>您可以拥有一个对象,将该引用复制到另一个变量,变异该对象,并且由于两个变量都持有对同一对象的引用,因此从一个变量所做的任何更改也可以从另一个变量访问
原语值可以包装到对象(新对象
)中,但不能以其他方式引用。字符串对象是不可变的(所有属性都是不可配置、不可写的),数字对象值也不可访问。因此,您不能更改任一对象的值
这意味着当你这样做时:
obj.look = 'abc';
console.log (number); // hopefully 'abc'
您正在擦除旧引用并在其中设置新字符串(对象或基元)<代码>编号
仍将保留旧的参考,并保持不变
所以,不。我认为这在Javascript中是不可能做到的。这如何解决问题的第二部分(这在我看来毫无意义):
obj.look='abc';console.log(编号);//希望是“abc”
?非常感谢。现在,我可以睡个好觉了。正如@MinusFour提到的,var obj={get look(){returnnumber;};也会起作用。
obj.look = 'abc';