好吧,大脑冻结了……我需要帮助来完成这项工作:
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 a移到 const d 之后定义,但是在这种情况下,需要在 const c 之后定义const d 。我想念什么...?谢谢
答案 0 :(得分:3)
声明所有对象没有的“ 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;
答案 1 :(得分:1)
您可以将neighbor
属性定义为吸气剂。 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);