美文网首页
es5中的类,静态方法,继承

es5中的类,静态方法,继承

作者: 额隔壁老王敲代码 | 来源:发表于2020-03-16 11:12 被阅读0次

    1. es5中的类和静态方法

      function Person(name,age) {//js里的类(构造函数)第一个字母要大写Person

          //构造函数里面的方法和属性

          this.name=name;

          this.age=age;

          this.run=function(){

              console.log(`${this.name}---${this.age}`)

          }

      }

      //原型链上面的属性和方法可以被多个实例共享

      Person.prototype.sex='男';

      Person.prototype.work=function(){

          console.log(`${this.name}---${this.age}---${this.sex}`);

      }

      //静态方法

      Person.setName=function(){

          console.log('静态方法');

      }

      var p=new Person('zhangsan','20');  /*实例方法是通过实例化来调用的,静态是通过类名直接调用*/

      p.run();

      p.work();

      Person.setName();  /*执行静态方法*/

    2.es5继承

        原型链继承和对象冒充继承

        对象冒充继承:没法继承原型链上面的属性和方法

        原型链继承:可以继承构造函数里面以及原型链上面的属性和方法,实例化子类的时候没法给父类传参

        function  Person(name,age) {

            this.name=name;

             this.age=age;

             this.run=function(){

                console.log(this.name+'---'+this.age);

            }

        }

        Person.prototype.work=function(){

           console.log('work');

        }

        function Web(name,age){

            Person.call(this,name,age);  /*对象冒充实现继承 这样子可以给父类Person传参数*/

        }

        Web.prototype=new Person();

        var w=new Web('李四',20);

        w.run();

        w.work();  //w.work is not a function

    相关文章

      网友评论

          本文标题:es5中的类,静态方法,继承

          本文链接:https://www.haomeiwen.com/subject/dtiimftx.html