js中无类的概念,ES6中的class、extends等关键字也只是语法糖,类的作用是继承和派生,那么继承的本质是什么呢?继承可以说是描述了一种层次关系,一种递进的关系。
当Student继承自Person,Student是一个Person,只不过是比Person更加具体。所以类不是必须的,只需要用另外的方法来实现这种递进关系即可。js中就利用了原型prototype
根据原型来创建一个对象,就构成了一种层次递进关系。
function Person(name) {
this.name = name
}
function Student(name) {
this.name = name;
}
Person.prototype.eat = function() {
console.log(this.name+"在吃饭");
}
Student.prototype = new Person();