是否需要对MDN关于“继承”的文章进行技术审查?

时间:2015-09-02 15:25:44

标签: javascript prototypal-inheritance

以下是代码,

function Employee() {
  this.name = "";
  this.dept = "general";
}

function WorkerBee() {
  Employee.call(this);
  this.projects = [];
}
WorkerBee.prototype = Object.create(Employee.prototype);

var mark = new WorkerBee;

其中MDN说:

  

来自mark原型对象namedept属性的mark.__proto__对象继承值projects构造函数为WorkerBee属性分配了一个本地值。

根据上面的代码,构造函数WorkerBee显式调用Employee.call(this);但不继承mark.__proto__的值。

WorkerBee.prototype = Object.create(Employee.prototype);的存在与为name对象中的属性deptmark创建本地值无关。

您认为MDN中的声明在继承值时是错误的吗?这些例子和想象力是否需要重新设计?

1 个答案:

答案 0 :(得分:1)

在ES 5之前,你会写WorkerBee.prototype = new Employee,因为没有Object.create。这句话在某种程度上是正确的。

如果您继续阅读,那么您实际上会看到一个显示旧代码的图表,该代码也会忽略Employee.call(this);

所以答案是你是对的,他们忘了更新文章的部分内容。