0

Javascript で相互に再帰的なオブジェクトを使用できるかどうか疑問に思っていました。

ゴール:

3 つのオブジェクトが必要です。

  1. Boolean2 つの値を持つ型を表すものとTrueFalse
  2. タイプのTrueオブジェクトを表すものBoolean
  3. タイプのFalseオブジェクトを表すものBoolean

秘訣は、Trueオブジェクトにその型を尋ねたい場合、オブジェクトを取得する必要があり、オブジェクトにその値を問い合わせたい場合、オブジェクトとオブジェクトの 2 つのオブジェクトを取得する必要がBooleanあるということです。BooleanTrueFalse

しかし、私がこのようなものを得るという意味で、それは完全に相互に再帰的でなければなりません(必ずしもこれとまったく同じである必要はありません):

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

そしてこれを行う能力は無限であるべきです

ノート

これらは、オブジェクトではなく関数である可能性があります。そして、呼び出しはこのようである必要はありません。

4

2 に答える 2