ねえ、私はこのような配列オブジェクトを持っています
[{
public: "public",
private: "private",
[{
properties: {...
},
instance: {.....
}
}, {...
}, {...
}]
}, {...
}, {....
}]
ここで、最も外側の配列には、クラス A のオブジェクトが含まれています。これには、いくつかの public props といくつかの private porps があり、クラス B のオブジェクトを含む配列も含まれています。これには、いくつかの public フィールドと private フィールドも含まれています。
基本的にこれが私のヒエラルキーです
array = [A1,A2,A3,A4,....]//object of A
var A = function(){
var Const = function(){
this.public_prop;
this.private_prop;
this.list = [B1,B2,B3,B4]// objects of B
}
//.........
return Const;
}();
var B = function(){
var Const = function(){
this.public_prop;
this.private_prop;
}
//.........
return Const;
}();
今、文字列化(シリアル化)している間、シリアル化された文字列に public prop と配列のみを含めたいと思います。
たとえば、上記の JSON 表現の場合、次のようなものが必要です
[{
public: "public",
[{
properties: {...
}
}, {...
}, {...
}]
}, {...
}, {....
}]
これで、文字列化する必要があるフィールドのみを返す関数getState() を各クラスに作成できますが、シリアル化する前に JSON.stringify のネイティブ実装でメソッドを呼び出す方法を見つけることができないようです。これを達成する方法はありますか?
JSON.stringify () からの出力で特定の値を非表示にする を参照しましたが、単一の階層で単純な数値または文字列の小道具を除外する方法についてのみ説明していますが、複数の階層で小道具を除外する方法は?
注:私のクラスはすべてモジュールパターンに従います