プロトタイプオブジェクトに列挙できない数値のtoJSON
関数をあまり定義しません。しかし、これはメソッドとしてアクセスすることはできませんプロパティとしてそれを定義JS非列挙型関数
Object.defineProperty(obj, prop, { enumerable: false });
:私はECMAScriptの5 toJSON
に似た何かを願っています。
私はすべてのプリミティブ型(String
、Number
、Boolean
、Array
、およびObject
)のプロトタイプに定義することを計画していたように私がするように私は、非可算な方法で関数を定義することができるように期待していました複雑なオブジェクトを通して関数を再帰的に適用することができます。
ここでの最終目標は、ネストされたコレクションを含むバックボーンモデル/コレクションを再帰的にJSONifyすることです。私は合計で私は2つの主要な質問があると思い
:
- は、プロトタイプに非列挙関数を定義することは可能ですか?もしそうなら、どのように?
- ネストされたBackboneモデルをJSONifyするより良い方法はありますか?
メソッドは*オブジェクトのプロパティです*。あなたは存在しない区別を描いています。あなたがそれを列挙できないようにするには、明らかにオブジェクトのプロパティを列挙しています。 –
はい、私はObject.definePropertyが列挙できないのと同じ方法で、非列挙型プロパティにしたいと思います。つまり、 'for(x in obj) 'を使用したときに反復されません。 –
右。ここでも、メソッドは、関数を参照するオブジェクトのプロパティです。あなたが持っているコードは、プロパティを列挙できないようにするために使うものです。 –