使用extends关键字可以实现继承,之后可以自动拥有父类的属性和方法

  1. <script>
  2. /* 面向对象的方法
  3. function Person(name,age){
  4. this.name=name;
  5. this.age=age;
  6. }
  7. Person.prototype.sayName=function(){
  8. this.name;
  9. } */
  10. /* es6的方法 */
  11. class Person{
  12. constructor(name,age){
  13. this.name=name;
  14. this.age=age;
  15. }
  16. sayName(){
  17. console.log(this.name) //lisi
  18. }
  19. }
  20. /* 使用extends关键字可以实现继承,吧,,,之后可以自动拥有父类的属性和方法 */
  21. class Student extends Person{
  22. constructor(name,age,skill){
  23. super(name,age); //super指的是Person
  24. this.skill=skill
  25. }
  26. /* //子类下的函数:这种写法是错误的
  27. saySkill(){
  28. console.log(this.skill)
  29. } */
  30. }
  31. var wang=new Person("wangyibo",18);
  32. // /* 父类不能使用子类的方法,子类可以使用父类的方法 */
  33. // wang.saySkill()
  34. var s=new Student("lisi",17,"html")
  35. s.sayName()
  36. console.log(s) //Student("lisi",17,skill:"html")
  37. </script>

在子类的方法中去调用父类的方法—this

  class Person{
            constructor(name,age){
                this.name=name;
                this.age=age;
            }
            sayName(){
                console.log(this.name)
            }
        }   
        /* 在子类的方法中去调用父类的方法 */  
        class Student extends Person{
            constructor(name,age,skill){
                super(name,age);   //super指的是Person
                this.skill=skill
            }
              saySkill(){
                this.sayName()
            }
        } 
        var wang=new Student("lisi",17,"html")
        wang.saySkill()
        var p=new Person("zhangsan",18)
        console.log(Person.prototype)