首先,es6中的类,实际上是方法的语法糖
prototype 是函数的属性,函数的prototype指向了一个对象,这个对象是调用该构造函数而创建的实例的原型。
原型就是,每个js对象在创建时,都会关联一个原型对象,对象从原型中继承属性。
class A {
constructor(age){
this.age = age;
}
getAge(){
return this.age;
}
}
等价于
function A (age){
this.age = age ;
}
A.prototype.getAge = function (){
return this.age;
}
原型链的继承
在子类中,先使用超类,来继承父类。
子类是先在父类中创建一个实例,拥有了父类中定义的属性和方法,然后子类再添加自己的属性和方法。
proto 是每个JS对象,都具有的一个属性,该属性会指向对象的原型。
constructor 每个原型都有一个constructor属性,指向关联的构造函数。
原型也是个对象,可以使用最原始的方法创建对象
var obj = new Object()
obj.name = 'Kevin'
console.log(obj.name) // Kevin
下图的蓝色线,即为原型链