var task = {};
task.prop1 = "prop1 value";
task.prop2 = "prop2 value";
console.log(task);
var newTask = Object.create(task);
console.log(newTask);
在这种情况下,为什么
newTask
打印为空?据我了解,它不应该打印task
的属性吗?编辑:我发现,当我们通过Object.create(task)创建对象时,我们将newTask的原型分配为任务,因此新任务不具有可通过newTaskObject上的getOwnProperty()进行验证的本机任务对象的属性。但是,当我们仔细检查时,当我们尝试通过newTask访问任务对象的属性时,原型链就被汇总了,并且我们没有得到不确定的定义。如果我错了,请纠正我。
最佳答案
您可以通过它读取task
的属性-尝试console.log(newTask.prop1)
-但浏览器的控制台在汇总对象时仅列出own properties。
展开以查看原型:
关于javascript - Object.create()函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49906275/