我是 JavaScript 的新手。当我阅读 Object.create 文档时,它的写法类似于“Object.create() 方法使用现有对象创建一个新对象”(参考:https ://developer.mozilla.org/en-US/docs/ Web/JavaScript/Reference/Global_Objects/Object/create )。它没有提及对象的浅拷贝。但是当我尝试下面的脚本时,我确认 create 方法正在执行浅拷贝。
var foo = {
a : 100,
details : {
version : 1.1,
name : 'Demo of object inheritance'
},
printInfo : function(){
console.log(this.details.version);
console.log(this.details.name);
console.log(this.a);
}
}
var bar = Object.create(foo);
foo.printInfo();
bar.printInfo();
console.log("\n Updating the details and property a of bar object");
bar.details.version = 2.2;
bar.details.name = "Bar object changed the name";
bar.a = 123456;
console.log("\n")
foo.printInfo();
bar.printInfo();
我的理解正确吗?请指出任何确认 create() 方法执行浅拷贝的文档。
当我在 Scratchpad 中执行时,我在控制台中看到了以下输出。
1.1
Demo of object inheritance
100
1.1
Demo of object inheritance
100
Updating the details and property a of bar object Scratchpad/1:21:1
2.2
Bar object changed the name
100
2.2
Bar object changed the name
123456