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)
所有我要问的是如何获得原始价值的参考 我相信必须有某种方式。请帮帮我。
答案 0 :(得分:3)
您可以使用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);
答案 1 :(得分:1)
你可以有一个对象,复制对另一个变量的引用,改变对象,因为两个变量都持有对同一个对象的引用,所以从一个变量做的任何更改也可以从另一个变量中访问。
原始值可以包装到对象(new Object
)中,但不能以其他方式引用它们。字符串对象是不可变的(所有属性都是不可配置的,不可写的),并且也无法访问Number对象值。所以你不能改变任何一个对象的价值。
这意味着当你这样做:
obj.look = 'abc';
您正在擦除旧引用并在那里设置新字符串(对象或基元)。 number
仍将保留旧参考,并保持不变。
所以,不。我不认为这可以用Javascript做。