js没有类的概念,通过原型和原型链实现继承。
函数对象可以被实例化(有构造函数),普通函数不能实例化(没有构造函数)。
prototype:原型对象,原型是函数所有,包含(构造函数和原型链) __proto__:原型链,原型链指向它所继承的原型对象,每个对象都有原型链,基类是Object Constructor:构造函数,new出的实例没有构造函数(有构造函数就能被实例化),指向该函数对象。
fun Foo(){...} let f1 = new Foo();
f1.__proto__ === Foo.prototype;
通过new的对象(子类)只有一个原型链,指向父类的原型,父类的原型中有构造方法和原型链,父类的原型链指向Object
function Animal(name,age) {
this.name = name
this.age = age
}
let pig = new Animal('peiqi',3)
console.log(pig)
原型:通过给原型绑定对象实现继承,
因为所继承对象的原型中包含constructor和原型链。