我想知道 Javascript 中是否可以有相互递归的对象,如果可以,如何实现?
目标:
我想要三个对象:
- 表示具有两个值
True
和False
的Boolean
类型 - 表示
Boolean
类型的True
对象 - 代表
Boolean
类型的False
对象
诀窍是我想询问 True
对象的类型,我应该返回 Boolean
对象,并且我想询问 Boolean
> 对象其值,我应该返回 2 个对象:True
对象和 False
对象。
但它应该完全是相互递归的,因为我得到了这样的东西(尽管它不一定必须完全像这样):
True
// {name : "True", type : [Object object]}
False
// {name : "False", type : [Object object]}
Boolean
// {name : "Boolean", values : [Object object]}
Boolean.values
// {True: [Object object], False: [Object object]}
True.type
// {name : "Boolean", values : [Object object]}
False.type
// {name : "Boolean", values : [Object object]}
Boolean.values.True
// {name : "True", type: [Object object]}
Boolean.values.True.type
// {name : "Boolean", values : [Object object]}
Boolean.values.True.type.values
// {True : [Object object], False: [Object object]}
等等...
如果有帮助,他们应该满足以下属性:
Boolean === Boolean.values.True.type
Boolean === Boolean.values.True.type.values.True.type
True === Boolean.values.True
True === True.type.values.True.type.values.True.type.values.True
False === Boolean.values.False
False === True.type.values.False
并且做到这一点的能力应该是无限的
注意
这些可以是函数而不是对象。而且调用不必完全像这样。
最佳答案
给你:
//Define the top level objects but avoid recursion
var True = {};
var False = {};
var Boolean = {
values: {
True: True,
False: False
}
};
//Create the recursion
True.type = Boolean;
False.type = Boolean;
关于javascript - 如何在Javascript中建立相互递归结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26935825/