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()函数-LMLPHP

关于javascript - Object.create()函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49906275/

10-13 03:10