1、类的定义

es5中类定义:

  1. <script>
  2. // es5类定义
  3. function Person(name,age){
  4. this.name = name;
  5. this.age = age;
  6. };
  7. // es5类方法定义
  8. Person.prototype.getAge = function(){
  9. return this.age;
  10. }
  11. // es5类实例化
  12. var p = new Person("张三",22);
  13. console.log(p.name);
  14. console.log(p.getAge());
  15. </script>

es6中类定义:es6中的类就比较像传统java等语言了

  1. <script>
  2. // es6类定义
  3. class Person {
  4. //constructor是默认方法
  5. constructor(name, age) {
  6. // 类属性
  7. this.name = name;
  8. this.age = age;
  9. }
  10. // es6方法定义
  11. getAge() {
  12. return this.age;
  13. }
  14. say1(something) {
  15. console.log(`say1,${something}`);
  16. }
  17. // 类静态方法
  18. static say1(something) {
  19. console.log(`static say1,${something}`);
  20. }
  21. static sayHi(something) {
  22. // 注意静态中的this代表的是静态方法、属性,而不是实例方法、属性
  23. this.say1(something);
  24. }
  25. };
  26. // es6类实例化
  27. var p = new Person("张三", 22);
  28. // 获取类属性
  29. console.log(p.name);
  30. // 调用类方法
  31. console.log(p.getAge());
  32. // 调用类静态方法
  33. Person.sayHi("hi");
  34. // 类静态属性,直接可以进行set和get,不需要在类中进行定义,这一点与java等语言不同
  35. Person.sex = "男";
  36. console.log(Person.sex);
  37. </script>

2、类的继承

类的继承和java一样用extends关键字实现

  1. <script>
  2. // es6类定义
  3. class Person {
  4. //constructor是默认方法
  5. constructor(name, age) {
  6. // 类属性
  7. this.name = name;
  8. this.age = age;
  9. }
  10. // es6方法定义
  11. getAge() {
  12. return this.age;
  13. }
  14. say1(something) {
  15. console.log(`say1,${something}`);
  16. }
  17. // 类静态方法
  18. static say1(something) {
  19. console.log(`static say1,${something}`);
  20. }
  21. static sayHi(something) {
  22. // 注意静态中的this代表的是静态方法、属性,而不是实例方法、属性
  23. this.say1(something);
  24. }
  25. };
  26. class Student extends Person {
  27. constructor(name, age, shcool) {
  28. super(name, age);
  29. this.shcool = shcool;
  30. }
  31. getShcool() {
  32. return this.shcool;
  33. }
  34. }
  35. // es6类实例化
  36. var p = new Person("张三", 22);
  37. // 获取类属性
  38. console.log(p.name);
  39. // 调用类方法
  40. console.log(p.getAge());
  41. // 调用类静态方法
  42. Person.sayHi("hi");
  43. // 类静态属性,直接可以进行set和get,不需要在类中进行定义,这一点与java等语言不同
  44. Person.sex = "男";
  45. console.log(Person.sex);
  46. var s = new Student("小明", 12, "明德小学");
  47. console.log(s.name);
  48. console.log(s.getShcool());
  49. </script>