26.复习ES5构造函数继承
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<script>
// 手机---父级构造函数
function Phone(brand, price) {
this.brand = brand;
this.price = price;
}
Phone.prototype.change = function () {
console.log("改变自己,改变全世界");
};
// 智能手机---子级构造函数
function SmartPhone(brand, price, color, size) {
// 继承父类的一些方法及属性,通过call方法改变this指向,让Phone的this指向SmartPhoen里面的this
Phone.call(this, brand, price);
this.color = color;
this.size = size;
}
// 设置子级构造函数的原型---让SmartPhone的prototype指向Phone实例对象的__proto__
SmartPhone.prototype = new Phone(); //这里不加()也可以 Chrome浏览器的[[prototype]]有时间了解一下,相当于__proto__,表示对象的应用关系!
// 一般会做下面的一个校正,不做也可以
SmartPhone.prototype.construcuor = SmartPhone;
// 给SmartPhone原型上添加方法
SmartPhone.prototype.photo = function () {
console.log("我可以拍照");
};
SmartPhone.prototype.playGame = function () {
console.log("我可以玩游戏!");
};
let apple = new SmartPhone("苹果", "1299", "灰色", "5.5inch");
console.log(apple);
</script>
</body>
</html>