次の例を検討してください。
var $_dfd = $.Deferred(),
$_x = {};
$_x = {
a: 1,
b: 2
};
console.log($_x); // Gives {a: 1, b: 2, more: {c: 3, d: 4}} <== Weirdness here
console.log($_x.a); // Gives 1
console.log($_x.more); // Gives undefined
$_dfd.pipe(function($_x) {
$_x.more = {
c: 3,
d: 4
};
return $_x;
});
$_dfd.resolve($_x).done(function($_x) {
console.log($_x); // Gives {a: 1, b: 2, more: {c: 3, d: 4}}
});
console.log の出力 #1 には本当に困惑しています。次の 2 つの質問に答える必要があります。
$_x
最初の console.log 出力での変数の実際の状態は何ですか?据え置き型で作業するときに console.log が変数の状態を理解する安全な方法ではない場合、他のより良い代替手段は何ですか?
ありがとう!