ES6箭头函数

32 篇文章 0 订阅
8 篇文章 0 订阅

ES6箭头函数

  1. 格式
    原来的函数写法
function fn(a,b){
	return a+b;
}

箭头函数写法

let fn=(a,b)=>{
	return a+b;
}
let result=fn(1,2);
console.log(3);
  1. 注意点
  • this是静态的,始终指向函数声明时所在作用域下的this的值,即使使用call,apply等方法改变作用域,也不会改变this的指向
    例如:
		window.name = 'jisoo';
        let obj = {
            name: 'lisa';
        };
        function name1() {
            console.log(this.name);
        }
        let name2 = () => {
            console.log(this.name);
        }
        name1(); //普通函数里的this指向全局变量jisoo
        name2(); //箭头函数里的变量在全局作用域下声明jisoo
        //call()方法调用
        name1.call(obj); //lisa(call方法有效)
        name2.call(obj); //jisoo(call方法无效)
  • 不能作为构造函数实例化对象
    例如:
		function obj1(name, age) {
            this.name = name;
            this.age = age;
        }
        var bp = new obj1('jisoo', 25);
        console.log(bp.name);//‘jisoo’
        console.log(bp.age);25          原来的函数写法
	var obj2 = (name, age) => {
        this.name = name;
        this.age = age;
    }
    var bp1 = new obj2('jennie', 24);
    console.log(bp1.name);
    console.log(bp2.age);//会报错(obj2 is not a constructor)
  • 不能使用arguments变量
    例如:
		function blackpink() {
            console.log(arguments.length);
        }
        blackpink(1, 2);//2
        let bp=()=>{
        	console.log(arguments.length);
        }
        bp(1,2);//报错arguments is not defined
  • 箭头函数的简写

    省略小括号(当形参有且只有一个时)

		var rose = n => {
            console.log(n + n);
        }
        rose(8);//16
        var rose1 = (n) => {
            console.log(n + n);
        }
        rose1(9);//18

省略花括号和return(当代码体只有一条语句时)

		var rose2 = n => {
            console.log(n * n);
        }
        rose2(8);//64
        var rose3 = m => console.log(m * m);
        rose3(9);//81
  • 箭头函数最适合把一个函数作为参数传到另一个函数中使用和与this无关的回调,例如计数器,数组的方法等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值