当我查看用JavaScript编写的父子关系时,您可以无限地浏览对象吗?
以以下为例
class Parent {
constructor() {
this.child = null;
}
}
class Child {
constructor() {
this.parent = null;
}
}
let p1 = new Parent();
let c1 = new Child();
p1.child = c1;
c1.parent = p1;
在Chrome浏览器中浏览该对象时,您可以对其进行无限迭代,这很显然是为什么,但是不好的实践是,还有另一种方法可以用JavaScript编写父/子关系吗?
孩子->父母->孩子->父母->孩子->父母->孩子->等等...
const x = {
a: 'INITIAL',
b: 'INITIAL',
}
const y = {
x,
cloneX: { ...x }
}
console.log(y)
x.a = 'CHANGED'
console.log(y)
通过查看问题和您的评论,听起来好像这对您来说并不是特别新鲜。
但是,我们可以知道,变量是通过引用传递的,因此,一旦您认为父/子值只是指针,您在控制台中看到的内容就很自然了,因此您自然可以继续关注他们。
但是,这并不意味着会存在任何类型的内存问题,因为代码不会保留对象的无限数量的副本;每个都只存储一个引用,在这种情况下它只是循环的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句