第二种方法 原型链继承
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//第二种:原型链继承
//原理:将原型对象链接到另一个对象实现继承(改变原型的指向)
function Cat(name,color){
this.name = name;
this.color = color;
this.trait = function(){
console.log('卖萌');
}
}
Cat.prototype.skill = function(){
console.log('进行捕鱼');
}
function Dog(name,color,food){
this.food = food;
}
Dog.prototype = new Cat(); //把狗的原型指向猫的实例对象
var dog1 = new Dog('小傻','pink','榴莲');
console.log(dog1.name); //undefined
console.log(dog1.food);
dog1.trait();
dog1.skill();
console.log(dog1.constructor); // f Cat(){ ....}
//两个问题
//1、实例化对象不能给父类传参,导致访问dog1.name没有值
//2、猫是猫生的,狗是狗生的,现在狗是猫生的,不符合现实
</script>
</body>
</html>