ES6新增箭头函数、面向对象

箭头函数 -- 新增函数

1.定义:使用=>定义的函数

2.格式:

1.常规格式
([arg1,arg2=defalutVal...])=>{
    //code
    [return val];
}
2.只有一个参数的
var foo = x => {}
3.只有返回值
let foo = () => val
4.只有一个参数且只有返回值
let foo =x => val
5.函数体只有一个值但是并不希望将值作为返回值
let foo = () => void val
​
函数表达式、回调函数参数、
  //箭头函数
    let foo = (x,y=1) =>{
        return x + y;
    }
    console.log(foo(5));  //6
    //等价于
    let foo2 = function(x , y = 1){
        return x + y;
    } 
    console.log(foo2(5));  //6
 
    //只有一个参数的箭头函数
    let foo3 = x => {
        return x + 1;
    }
    console.log(foo3(4)); //5
​
    //函数体只有一个返回值的箭头函数
    let foo4 = (x) => x+1;
    console.log(foo4(7));  //8
​
    //只有一个参数并且函数体只有一个返回值的箭头函数
    let foo5 = x => x+1;
    console.log(foo5(9));  //10
​
    //函数体只有一个值并不想作为返回值时的箭头函数
    let foo6 = x => void foo5(3);
    console.log(foo6(1));  // undefined

3.注意:箭头函数this指向不同 -- 指向定义时所在的上层对象

ES6面向对象

1.class关键字:定义类 -- es5中为构造函数

2.语法格式:

class Person {
    attr = val ; //实例属性
    static attr = val;//静态属性
    #attr = value; //私有属性
    constructor(){
        //构造方法,必须要有,默认返回this
        this.x = x; //实例属性
        this.f = f; //实例方法 -- f的实参是一个函数
    }
  get attr(){return val;} //attr就是属性名
  set attr(val){}
  funName(){} //原型方法
  static funName(){} //静态方法
  #funName(){}  //私有方法
}
Object.assign(Person.prototype,{attr:val}); //原型属性

3.调用(实例化):new Person()

4.继承

class Son extends Parent{
    constructor(){
        super(); //调用父类的构造函数,父类的参数作为super的参数
        this.x = 1; //必须先调用super再才能调用本身的this
    }
}

5.继承要注意的点:①子类可以不写constructor,但是写了constructor就必须先调用super()

②可继承:实例属性及方法、原型属性及方法、静态属性及方法

③不可继承:私有属性及方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值