class
知识点
// 1. 使用 class 声明类
// 2. constructor 定义构造函数初始化
// 3. extends 继承父类
// 4. super 调用父级构造方法
// 5. static 定义静态方法和属性
// 6. 父类方法可以重写
1. ES5 方法构造函数
function Phone(brand, price) {
this.brand = brand
this.price = price
}
Phone.prototype.call = function() {
console.log('我被用来打电话')
}
2. ES6 方法构造函数
class Phone {
static nation = '中国'
// 构造方法,名字不可修改
constructor(brand, price) {
this.brand = brand
this.price = price
}
// 方法必须使用该语法,不能使用 ES5的对象完整形式(带冒号那种)
call() {
console.log('我可以联系远方的她——' + Phone.nation)
}
}
3. ES6构造函数继承
class Phone {
static name = '华为'
constructor(type, size) {
this.type = type
this.size = size
}
call() {
console.log('我能打电话')
}
}
// 继承
class superPhone extends Phone {
constructor(type, size, color, price) {
super(type, size)
this.color = color
this.price = price
}
phone() {
console.log('我可以拍照')
}
playGame() {
console.log('我可以打游戏')
}
// 重写父类方法
call() {
console.log('我可以视频通话')
}
}
let s1 = new superPhone('iPhone', '12', '蓝', '8999')
4. get 和 set
class Phone {
get price() {
console.log('获取了价格')
return '价格'
}
// 注意 set 方法必须有一个参数
set price(newVal) {
console.log('修改了价格')
}
}
let s = new Phone()