例子:
var o = {
a: 12,
gg: {
mm: {
a: 15
}
}
}
console.log(o, _.copy(o))
o.gg.mm.a = 44
在这种情况下,在开发人员工具中,它会打印两次“o”,并且 o.gg.mm.a 的值会有所不同
在第一个中,值为 44
在第二个中,值为 15 -- 感谢 jquery 复制功能或下划线克隆功能
当打印更复杂的主干模型时,它会不断打印指向错误引用的对象,即 44 而不是 15(无论是否使用克隆/复制)
有几个选项可以显示这些属性(即使是 Backbone 模型),但它们都很糟糕:
- 使用具有已知限制的包装器,即克隆/复制/扩展来处理嵌套属性
- 复制/克隆/扩展特定属性以获取嵌套对象,即 console.log(_.copy(o.gg.mm))
- 直接在值上使用 console.log 即 console.log(o.gg.mm.a) 以获得正确的值
- 启动调试器并检查值
有没有更简单的?我想查看对象及其属性,而不会让 console.log 误读我