0

次の例を検討してください。

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 つの質問に答える必要があります。

  1. $_x最初の console.log 出力での変数の実際の状態は何ですか?

  2. 据え置き型で作業するときに console.log が変数の状態を理解する安全な方法ではない場合、他のより良い代替手段は何ですか?

ありがとう!

4

1 に答える 1

0

JSON.stringify()次の投稿で詳しく説明されているように、を使用する必要があります。

console.log にバグがありますか?

于 2012-10-11T11:04:43.563 に答える