您的位置:首页 > Web前端 > JavaScript

JavaScript的写类方式(6)

2016-04-08 08:04 645 查看
时间到了2015年6月18日,ES6正式发布了,到了ES6,前面的各种模拟类写法都可以丢掉了,它带来了关键字 class,extends,super。

ES6的写类方式

// 定义类 Person
class Person {

constructor(name, age) {
this.name = name;
this.age = age;
}

setName(name) {
this.name = name;
}

getName() {
return this.name;
}

toString() {
return 'name: ' + this.name + ', age: ' + this.age;
}

}

// 创建实例对象
var p = new Person('Backus', 35);
p instanceof Person; // true


以上定义了一个类,constructor 是构造器,这点和 Java 不同,Java的构造器名和类名相同。

和 Java 多象啊,再看看继承

class Man extends Person {
constructor(name, age, school) {
super(name, age); // 调用父类构造器
this.school = school;
}

setSchool(school) {
this.school = school;
}

getSchool() {
return this.school;
}

toString() {
return super.toString() + ', school:' + this.school; // 调用父类的toString()
}
}

var man = new Man('张三', '30', '光明中学');
man instanceof Man; // true
man instanceof Person; // true
console.log(man);


以上代码中,constructor 和 toString 方法中,都出现了 super 关键字,它指代父类的实例(即父类的 this 对象)。 之前 ES5 有个 Object.getPrototypeOf 来获取父类的原型对象

可以继续阅读:

JavaScript继承方式(1)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: