1

Chrome DevTools が参照によってオブジェクトをログに記録しないようにする方法はありますか? 問題の例を以下に示します。

var monkey = { 'bananas': 0 };
console.log("Monkey Log #1: %O", monkey);
monkey.bananas++;
console.log("Monkey Log #2: %O", monkey);
monkey.bananas++;
console.log("Monkey Log #3: %O", monkey);

開発ツールのログを見ると、各ログ エントリの値が同じであることがわかります。予想される 0/1/2 バナナではなく、すべて 3 つのバナナがあります。

4

3 に答える 3

2

直接ログに記録するだけで、使用する必要はありません%O:

var monkey = { 'bananas': 0 };
console.log("Monkey Log #1: ", monkey);
monkey.bananas++;
console.log("Monkey Log #2: ", monkey);
monkey.bananas++;
console.log("Monkey Log #3: ", monkey);

次のようにログに記録します。

ロギー

于 2013-07-22T18:58:51.770 に答える
0

SLaks は正しい答えを導き出しました。

オブジェクトを複製するラッパー関数を作成します。

function uniqueObj(obj) { 
  return jQuery.extend(true, {}, obj);
}

var monkey = { 'bananas': 0 };
console.log("Monkey Log #1: %O", uniqueObj(monkey));
monkey.bananas++;
console.log("Monkey Log #2: %O", uniqueObj(monkey));
monkey.bananas++;
console.log("Monkey Log #3: %O", uniqueObj(monkey));
于 2013-07-18T19:02:01.403 に答える