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);

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

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

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

于 2013-07-18T17:04:10.730 回答
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 回答