在许多其他编程语言中,可以将变量的值作为副本或通过引用获得。
示例(PHP):
$value = 'a value';
$copy = $value;
$ref = &$value;
$value = 'new value';
echo $copy; // 'a value'
echo $ref; // 'new value'
JavaScript中是否有类似的功能?我可以引用ie对象的属性,即使我用新的字符串/对象替换属性,引用变量也会指向新数据吗?
以下是我想要实现的示例代码:
var obj = { property: 'a value' }
var another = obj.property // save this by reference to this variable
obj.property = 'new value'
console.log(another) // expected: 'new value'
到目前为止,我已尝试使用getter / setter,但这没有用,因为当我将属性赋值给新变量时,将调用getter并返回实际值。我很确定这很容易使用Node.js EventEmitter或使用函数调用而不是属性来实现,但我真的在寻找一些我可能错过的语言特性或者一些明显的,简单的方法来做这些的东西。
谢谢!
答案 0 :(得分:0)
在Javascript中,对象通过引用传递,但原语(字符串,数字和布尔值)按值传递:
var obj = { property: 'a value' };
var another = obj.property; // value
obj.property = 'new value';
console.log(another); // gives a value
但是
var obj = { property: 'a value' };
var another = obj; // reference
obj.property = 'new value';
console.log(another.property); // gives new value