es6中的类、继承

一、类

ES6 的class可以看作只是⼀个语法糖,它的绝⼤部分功能,ES5 都可以做到,新的class写法只是让对象原型的写法更加清晰、更像⾯向对象编程的语法⽽已。

    1.构造函数:constructor()⽅法是类的默认⽅法,通过new命令⽣成对象实例时,⾃动调⽤该⽅法。⼀个类必须有constructor()⽅法,如果没有显式定义,⼀个空的constructor()⽅法会被默认添加。

    function Animal (name,age){

        this.name = name;

        this.age = age

        }

        Animal.prototype.sayHello = function(){

            console.log('hello')

        }

        let a = new Animal('tom',2)

         2.成员属性:成员属性是直接定义在类中的属性,我们可以为其赋默认值,如果没有指定默认值,默认值为undefined

          3.成员⽅法:成员⽅法是直接定义在类中的⽅法,例如上⾯例⼦中的toString⽅法,从ES5⻆度理解,成员⽅法就是定义在构造函数原型中的⽅法,供所有实例共享的⽅法。

           4.静态⽅法:静态⽅法是定义在类上的⽅法,可以通过类名直接调⽤的⽅法

           5.静态属性:静态属性是定义在类上的属性,可以通过类名直接调⽤的属性

            6.静态代码块:⽤于初始化静态属性的代码区域,在ES2022中引⼊静态块(nodev14⽆法使⽤)静态代码块⽤于初始化静态属性的代码区域,在ES2022中引⼊静态块(nodev14⽆法使⽤)

   //类是构造函数的语法糖

        class Animal {

            //一个类必须有一个constructor

        constructor(name,age){

            this.name = name;

            this.age = age

        }

        //成员方法

        sayHello(){

            console.log('hello my name is'+this.name);

        }

        //成员属性

        gender=12

        //静态方法

        static sayAge(age){

            console.log('I am'+ age);

        }

        //静态属性

        static gender = '男'

        }

        let a = new Animal('jerry',2)    //a为Animal的实例对象

        console.log(a);    //{}

        a.sayHello()       //my name is jerry

        console.log(a.gender);

        Animal.sayAge(13)

        console.log(Animal.gender);

二、继承

     (1)原型链继承

        function animal (){}

        function Dog (){}

        Dog.prototype = new Animal()

     (2)经典继承(借用构造函数)

        function(){

            Animal.call(this,'tom')

        }

     (3)组合继承

  类

     //父类

    class Animal {

        sayHello(){

            console.log('Hello')

        }

    }

    //子类

    class Dog extends Animal {

      constructor(){

          super()

      }

    }

    let d = new Dog();

    console.log(d);      //Hello

三、axios(纯粹的http库)

       jquery  ajax基于回调函数

       axios   基于promise的http库(专业),既能在浏览器上使用,又能在nodejs上面使用

    拦截操作

       响应拦截(在拿到响应信息之前干一个事情)

       请求拦截(请求发送之前干一个事情)

    (1)使用

         安装

         cdn     <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>(浏览器)

         npm(cnpm  yarn)

         npm install axios --save(nodejs)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值