【发布时间】:2019-04-22 16:44:38
【问题描述】:
我试图了解对象原型是如何工作的,因此尝试了“Javascript:The Good Parts”一书中的一段代码并得到了一个错误。
我只是为了好玩而修改了代码并得到了错误。如果运行原始代码,它会起作用并显示输出。
这是原始代码,没有任何错误。
let stooge = {
'first-name': 'John',
'last-name' : 'Peter'
};
if(typeof Object.create !== 'function') {
Object.create = (o) => {
let F = () => {};
F.prototype = o;
return new F();
};
}
let theOtherStooge = Object.create(stooge);
console.log(theOtherStooge['first-name'], theOtherStooge['last-name']);
我删除了 if 条件并得到一个错误,说 F 不是构造函数。有人可以解释一下为什么会这样吗?请原谅,我是编程初学者。
修改后的代码:
let stooge = {
'first-name': 'John',
'last-name' : 'Peter'
};
Object.create = (o) => {
let F = () => {};
F.prototype = o;
return new F();
};
let theOtherStooge = Object.create(stooge);
console.log(theOtherStooge['first-name'], theOtherStooge['last-name']);
【问题讨论】: