且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《JavaScript启示录》——1.15 复杂对象具有动态属性

更新时间:2022-08-31 20:12:26

本节书摘来自异步社区《JavaScript启示录》一书中的第1章,第1.15节,作者:【美】Cody Lindley著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.15 复杂对象具有动态属性

一个新变量,指向现有的复杂对象,并没有复制该对象。这就是复杂对象有时被称为引用对象的原因。复杂对象可以根据需求有任意多个引用,即使对象改变,它们也总是指向同一个对象。

<!DOCTYPE html><html lang="en"><body><script>

var objA = { property: 'value' };
var pointer1 = objA;
var pointer2 = pointer1;

// 更新objA.property, 所有引用(pointer1和pointer2)都被更新了
objA.property = null;

// 输出 'null null null' ,因为objA, pointer1和pointer2引用的都是同一对象
console.log(objA.property, pointer1.property, pointer2.property);

</script></body></html>

复杂对象支持动态对象属性,因为我们可以定义对象,然后创建引用,再更新对象,并且所有指向该对象的变量都会“获得”更新。