对象和控制台日志的奇怪行为

对象和控制台日志的奇怪行为

此代码:

foo = [{id: 1},{id: 2},{id: 3},{id: 4}, {id: 5}, ];console.log('foo1', foo, foo.length);foo.splice(2, 1);console.log('foo2', foo, foo.length);

在Chrome中生成以下输出:

foo1 
[Object, Object, Object, Object, Object]  5
    0: Object
    1: Object
    2: Object
    3: Object
    length: 4
    __proto__: Array[0]
     5 (index):23foo2 
[Object, Object, Object, Object]  4
    0: Object
    1: Object
    2: Object
    3: Object
    length: 4
    __proto__: Array[0]

小提琴:http://jsfiddle.net/2kpnV/

那是为什么?


哈士奇WWW
浏览 337回答 3
3回答

斯蒂芬大帝

重新定义控制台日志将解决问题。var originalLog = console.log console.log=function(obj){     originalLog(JSON.parse(JSON.stringify(obj)))}

撒科打诨

你可以把SETTimeout在对象修改之后运行。setTimeout(()=>{     console.log(this.daysOfTheYear)},0)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript