例:
var o = {
a: 12,
gg: {
mm: {
a: 15
}
}
}
console.log(o, _.copy(o))
o.gg.mm.a = 44
この場合、開発ツールでは、「o」が2回出力され、o.gg.mm.aの値が異なります。
最初のものでは、値は44です
2番目の値は15です-jqueryコピー関数またはアンダースコアクローン関数のおかげです
はるかに複雑なバックボーンモデルを印刷する場合、間違った参照、つまり15ではなく44を指すオブジェクトを常に印刷します(クローン/コピーが使用されているかどうかに関係なく)
これらのプロパティを表示するためのいくつかのオプションがありますが(バックボーンモデルでも)、それらはすべてひどいものです。
- ネストされたプロパティを処理するには、既知の制限、つまりclone / copy/extendのラッパーを使用します
- 特定のプロパティをコピー/クローン/拡張して、ネストされたオブジェクト、つまりconsole.log(_。copy(o.gg.mm))にアクセスします
- 値に対してconsole.logを直接使用する、つまりconsole.log(o.gg.mm.a)を使用して正しい値を取得する
- デバッガーを起動し、値を調べます
もっと簡単なものはありますか?console.logが誤読で私をだまさずにオブジェクトとそのプロパティを表示したい