在我的时区早上好。
我正在学习 JavaScript 继承,并开始阅读 MDN 页面。我知道我们必须使用构造函数中的原型属性来构建继承链,例如:
function Employee(){
this.name = "Dave";
this.dept = "";
}
function Manager(){
this.projects = [];
}
Manager.prototype = new Employee;
如果我们这样做:
var jane = new Manager();
jane.name -> 它将检索“Dave”,因为它会在 Employee 对象上找到。
我无法理解的是,如果您这样做:
function Employee(name,dept){
this.name = name || "Dave";
this.dept = dept || "General";
}
function Manager(){
this.base = Employee;
this.base("Jack","CustpmDept");
this.projects = [];
}
现在,如果我这样做:
var jane = new Manager();
jane.name -> 它将检索“Jack”,因为它会在 Employee 对象上找到。
在最后一个例子中,我没有使用 Manager.prototype = new Employee; 它仍然有效,Manager 对象将 Employee 对象作为其原型对象。这怎么可能 ?你能澄清一下吗
提前致谢
此致