ES6(三)之箭头函数

箭头函数特点:

写起来简单 可以解决this的问题

1.箭头函数没有function的关键字

2.小括号和大括号之间有个箭头

3.如果参数是一个 可以省略小括号

4.如果没有return 可以不写大括号

5.如果直接返回的是对象类型 需要()包裹

// 普通函数

function fn(a) {

return a;

}

// 箭头函数

let fn = a => a;

let a = c => d => ({ sum: c + d });

console.log(a(1)(2))//{ sum: 3 }

一:可以解决this的问题 看this指代的是谁 看.前面的是谁就是谁

1.解决this的问题 var that = this;

2.通过bind方式绑定this (call apply)

3.箭头函数 箭头函数中没有this指向

let obj={

b:1,

a: () => {

setTimeout(()=>{

console.log(this);//Window

}, 1000);

}

}

obj.a();

let obj={

b:1,

a: function() {

setTimeout(()=>{

console.log(this);//obj

}, 1000);

}

}

obj.a();

二:对象不是作用域, let声明的也不会被声明到全局上

let a = 1;

let obj = {

a:2,

console.log(a);//1

console.log(this.a);//undefined

}

}

obj.b();

三:箭头函数中没有arguments

// ... 叫剩余运算符 就是把多余的都放到数组中(放到最后一个)

let fn = (...arguments) =>{

let args = arguments.slice(1);

console.log(args);

}

fn('x',1,2,3,4,5);

// 函数可以赋予默认参数

let fn = (a=1,b=2)=>{

console.log(a,b)

}

fn();

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180526G0B6O700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券