我一直在研究JavaScript中的原型继承,我对它的必要性有一个重大问题。我无法理解为什么它非常重要。我一直在运行如下所示的基本代码段:
function Employee() {
this.name = "geetha";
this.dept = "general";
}
Employee.prototype.designation = "nothing";
function Manager() {
Employee.call(this);
this.title = "mr";
}
Manager.prototype = Object.create(Employee.prototype);
var mark = new Manager;
console.log(mark.name);
console.log(mark.dept);
console.log(mark.title);
console.log(mark.designation);
<script src="https://getfirebug.com/firebug-lite-debug.js"></script>
在上面的代码段中,如果我删除
Manager.prototype = Object.create(Employee.prototype);
我可以看到它只会妨碍我在“Employee”构造函数中添加一个新属性,以便它逐渐渗透到它是原型的对象。否则,如果我满足于已经定义的属性,我真的不需要将“Employee”作为“Manager”的原型。 Employ Manager内部的Employee构造函数调用将完成其属性的获取。所以我错过了这个概念中真正重要的东西吗?
谢谢!
答案 0 :(得分:0)
如果您不使用
行Manager.prototype = Object.create(Employee.prototype);
那么你实际上并没有使用继承。您只是使用Employee构造函数来初始化Manager实例中的变量,就像它们在Employee实例中被初始化一样。
需要注意的是这一行
Employee.prototype.designation = "nothing";
如果您不使用继承,则属性designation
将无法用于Manager实例,因为它不在原型链中。