function MyItem(name) {
this.name = name;
}
var a = new MyItem('MyName');
console.log(a);
var b = angular.copy(a);
console.log(b);
var c = Object.create(Object.getPrototypeOf(a));
c.name = 'MyName';
console.log(c);
Firefox / Opera / Safari控制台中的结果:
MyItem { name="MyName"}
MyItem { name="MyName"}
MyItem { name="MyName"}
Chrome控制台中的结果:
MyItem {name: "MyName"}
Object {name: "MyName"}
Object {name: "MyName"}
为什么呢?为什么Chrome不像其他浏览器那样在控制台中持久保存(或仅显示)正确的构造函数类型?使用Angular深度复制方法使用“b”对象,但它的主要要点是使用Object.create,因此您也可以只查看对象的a和c。可以请某人解释一下,为什么它会像这样,以及这是否会在以后产生其他严重影响?