我如何获得原始值的参考?
how do i get a reference of primitive value?
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'
我希望它会是:
- 不是方法(如 obj.look() )
但可以参考 属性(例如 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
),但不能以其他方式引用它们。 String 对象是不可变的(所有属性都是不可配置的,不可写的)并且 Number 对象的值也是不可访问的。所以你不能改变任何一个对象的值。
这意味着当你这样做时:
obj.look = 'abc';
您正在擦除旧引用并在那里设置新字符串(对象或基元)。 number
仍将保留旧参考并保持不变。
所以,没有。我认为这在 Javascript.
中是不可能的
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'
我希望它会是:
- 不是方法(如 obj.look() )
但可以参考 属性(例如 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
),但不能以其他方式引用它们。 String 对象是不可变的(所有属性都是不可配置的,不可写的)并且 Number 对象的值也是不可访问的。所以你不能改变任何一个对象的值。
这意味着当你这样做时:
obj.look = 'abc';
您正在擦除旧引用并在那里设置新字符串(对象或基元)。 number
仍将保留旧参考并保持不变。
所以,没有。我认为这在 Javascript.
中是不可能的