Circular const, let declaration for graph ...如何修复?
Circular const, let declaration for graph ... how to fix?
好的,脑子冻结了……我需要帮助才能完成这项工作:
const a = {
val: 'a',
neighbor: d
}
const b = {
val: 'b',
neighbor: a
}
const c = {
val: 'c',
neighbor: b
}
const d = {
val: 'd',
neighbor: c
}
console.log('d: neighbor - > ', d.neighbor)
console.log('a: neighbor - > ', a.neighbor)
const a 必须指向 const d 但不幸的是 const d 是在之后定义的常量。在大多数情况下,我可以将 const a 移动到 const d 之后定义,但在这种情况下 const d 需要在 [=21= 之后定义]const c。我错过了什么......?谢谢
声明所有对象没有 "neighbor" 属性,然后在单独的赋值中添加。
const a = {
val: 'a'
}
const b = {
val: 'b'
}
const c = {
val: 'c'
}
const d = {
val: 'd'
}
a.neighbor = d;
b.neighbor = a;
c.neighbor = b;
d.neighbor = c;
您可以将 neighbor
属性定义为 getter。 getter 实际上是一个函数,它在您检索对象的值时执行,即此时所有引用的对象都已定义。这样您还可以保护 neighbor
属性 免受意外更改。
const a = {
val: 'a',
get neighbor () {return d;}
};
const b = {
val: 'b',
get neighbor () {return a;}
};
const c = {
val: 'c',
get neighbor () {return b;}
};
const d = {
val: 'd',
get neighbor () {return c;}
};
console.log('d: neighbor - > ' , d.neighbor);
console.log('a: neighbor - > ' , a.neighbor);
好的,脑子冻结了……我需要帮助才能完成这项工作:
const a = {
val: 'a',
neighbor: d
}
const b = {
val: 'b',
neighbor: a
}
const c = {
val: 'c',
neighbor: b
}
const d = {
val: 'd',
neighbor: c
}
console.log('d: neighbor - > ', d.neighbor)
console.log('a: neighbor - > ', a.neighbor)
const a 必须指向 const d 但不幸的是 const d 是在之后定义的常量。在大多数情况下,我可以将 const a 移动到 const d 之后定义,但在这种情况下 const d 需要在 [=21= 之后定义]const c。我错过了什么......?谢谢
声明所有对象没有 "neighbor" 属性,然后在单独的赋值中添加。
const a = {
val: 'a'
}
const b = {
val: 'b'
}
const c = {
val: 'c'
}
const d = {
val: 'd'
}
a.neighbor = d;
b.neighbor = a;
c.neighbor = b;
d.neighbor = c;
您可以将 neighbor
属性定义为 getter。 getter 实际上是一个函数,它在您检索对象的值时执行,即此时所有引用的对象都已定义。这样您还可以保护 neighbor
属性 免受意外更改。
const a = {
val: 'a',
get neighbor () {return d;}
};
const b = {
val: 'b',
get neighbor () {return a;}
};
const c = {
val: 'c',
get neighbor () {return b;}
};
const d = {
val: 'd',
get neighbor () {return c;}
};
console.log('d: neighbor - > ' , d.neighbor);
console.log('a: neighbor - > ' , a.neighbor);