ES6 箭头函数

箭头函数

在ES6中新增了箭头函数,箭头函数也是一个函数表达式

语法:
		  (参数1, 参数2) =>{
		  	 函数体;
		  }
首先说说箭头函数的基本语法:

1.如果参数只有一个会省略小括号

const fun = num =>{
   console.log(num);
  }
  fun(1)
  //输出 1
```

2.如果箭头函数只有一条返回语句,可以省略花括号 return

// 普通函数
const isOdd = function(num){
   return num % 2 == 0
}

//箭头函数
const isOdd2= num => num % 2 == 0

一行代码搞定,是不是简单了很多

3.如果返回值是一个对象会被认成函数体

const obj = (a,b) =>({
       a : a,
       b : b
       })
console.log(obj(1,2));
//{a: 1, b: 2}
再来说说箭头函数和ES5中函数的区别:

1 箭头函数没有 this,即使有也是指向外层this,这样说有点矛盾了根据自己的想法来,可以认为箭头函数有this但是箭头函数的this指向外层this。

//ES5
const obj = {
   age : 16,
   say : function(){
         setTimeout(function(){
             console.log(this,this.age)
            }, 0)
          }
        }
 obj.say();
 //window undefined
 //ES6
 const obj = {
     age : 16,
     say : function(){
     setTimeout(
        () =>{
             console.log(this,this.age)
            }, 0)     
         }
      }
 obj.say();
 //obj 16

箭头函数所访问的是父级作用域中的this。

不可用作为构造函数使用

var Person = (a) => {
   this.a = a
}
var p = new Person(1)
//运行是会报错滴

可以根据上面的理解箭头函数是没有this的,还记得创建一个构造函数 new关键子所做的事情吗,其中第三步 :new功能将构造函数中的this指向新对象,就可以理解了。

3.没有argument

var foo = (val) => {
	   console.log(arguments);
	     }
	  foo();
	  //报错 Uncaught ReferenceError: arguments is not defined
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值