function Animal(name){
this.name=name
this.say=function(){
console.log( name + ' miao miao miao' )
}
this.arr= [1];//解决了原型链继承,引用属性会共享的问题
}
Animal.prototype.eat = function(food){ //无法继承prototype里的属性
console.log(this.name + '吃' + food)
}
function Cat(name){
Animal.apply(this,arguments)
}
let final = new Cat('小猫');//可以向父类传参
final.arr.push(2);
let final2 = new Cat('大猫');
console.log(final.arr) //[1,2]
console.log(final2.arr)//[1]
有个不好的地方,就是子类都有父类函数的副本(父类里this的属性),影响性能。而且也不能通过prototype共享一些共同的方法