1、类的定义
es5中类定义:
<script>// es5类定义function Person(name,age){this.name = name;this.age = age;};// es5类方法定义Person.prototype.getAge = function(){return this.age;}// es5类实例化var p = new Person("张三",22);console.log(p.name);console.log(p.getAge());</script>
es6中类定义:es6中的类就比较像传统java等语言了
<script>// es6类定义class Person {//constructor是默认方法constructor(name, age) {// 类属性this.name = name;this.age = age;}// es6方法定义getAge() {return this.age;}say1(something) {console.log(`say1,${something}`);}// 类静态方法static say1(something) {console.log(`static say1,${something}`);}static sayHi(something) {// 注意静态中的this代表的是静态方法、属性,而不是实例方法、属性this.say1(something);}};// es6类实例化var p = new Person("张三", 22);// 获取类属性console.log(p.name);// 调用类方法console.log(p.getAge());// 调用类静态方法Person.sayHi("hi");// 类静态属性,直接可以进行set和get,不需要在类中进行定义,这一点与java等语言不同Person.sex = "男";console.log(Person.sex);</script>
2、类的继承
类的继承和java一样用extends关键字实现
<script>// es6类定义class Person {//constructor是默认方法constructor(name, age) {// 类属性this.name = name;this.age = age;}// es6方法定义getAge() {return this.age;}say1(something) {console.log(`say1,${something}`);}// 类静态方法static say1(something) {console.log(`static say1,${something}`);}static sayHi(something) {// 注意静态中的this代表的是静态方法、属性,而不是实例方法、属性this.say1(something);}};class Student extends Person {constructor(name, age, shcool) {super(name, age);this.shcool = shcool;}getShcool() {return this.shcool;}}// es6类实例化var p = new Person("张三", 22);// 获取类属性console.log(p.name);// 调用类方法console.log(p.getAge());// 调用类静态方法Person.sayHi("hi");// 类静态属性,直接可以进行set和get,不需要在类中进行定义,这一点与java等语言不同Person.sex = "男";console.log(Person.sex);var s = new Student("小明", 12, "明德小学");console.log(s.name);console.log(s.getShcool());</script>
