如何获取原始值的引用

how do i get a reference of primitive value?

本文关键字:原始 引用 获取 何获取      更新时间:2023-09-26
var number = 12345;
var obj = {};

做类似的事情

obj.look    ((((((some operator or function to get a reference of number )))))      number

无论如何,让我们现在考虑一下 OBJ 有一个对数字的引用。
所以我想这样做。

obj.look = 'abc';
console.log (number); // hopefully  'abc'

我希望它将是:

  1. 不是方法(如 obj.look(( (
  2. 但可以在属性中引用(如obj.look(

    我问的只是如何获得原始值的参考。
    我相信一定有办法。请帮帮我。

您可以使用

Object.defineProperty:

var number = 12345;
var obj = {};
Object.defineProperty(obj, 'look', {
    get() {
        return number;
    },
    set(value) {
        number = value;
    }
});
document.write(obj.look + '<br>');
obj.look = 'abc';
document.write(number);

你可以有一个对象,将该引用复制到另一个变量,改变该对象,并且由于两个变量都包含对同一对象的引用,因此从一个变量所做的任何更改也可以从另一个变量访问。

基元值可以包装到对象(new Object(,但不能以其他方式引用它们。字符串对象是不可变的(所有属性都是不可配置的、不可写的(,数字对象值也不可访问。因此,您无法更改任一对象的值。

这意味着当您这样做时:

obj.look = 'abc';

您正在擦除旧引用并在那里设置一个新字符串(对象或基元(。 number仍将保留旧引用,并将保持不变。

所以,没有。我认为这在Javascript中是不可能的。