防止Chrome DevTools通过引用记录对象

时间:2013-07-18 17:00:02

标签: google-chrome google-chrome-devtools

有没有办法让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);

如果查看开发工具日志,您会看到每个日志条目的值相同 - 它们都有3个香蕉,而不是预期的0/1/2香蕉。

3 个答案:

答案 0 :(得分: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);

记录为:

loggy

答案 1 :(得分:0)

您可能只需要执行JSON.stringify(对象)并将其视为字符串。其他变量,如整数,你需要做.toString()。

答案 2 :(得分: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));