Javascript で相互に再帰的なオブジェクトを使用できるかどうか疑問に思っていました。
ゴール:
3 つのオブジェクトが必要です。
Boolean
2 つの値を持つ型を表すものとTrue
、False
- タイプの
True
オブジェクトを表すものBoolean
- タイプの
False
オブジェクトを表すものBoolean
秘訣は、True
オブジェクトにその型を尋ねたい場合、オブジェクトを取得する必要があり、オブジェクトにその値を問い合わせたい場合、オブジェクトとオブジェクトの 2 つのオブジェクトを取得する必要がBoolean
あるということです。Boolean
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
そしてこれを行う能力は無限であるべきです
ノート
これらは、オブジェクトではなく関数である可能性があります。そして、呼び出しはこのようである必要はありません。