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
我希望它是:

  • not方法(如obj.look())
  • 但可以在属性中引用(如obj.look)

    我要问的是如何获得原始值的引用。
    我相信一定有办法。请帮帮我

  • 您可以使用:

    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';