箭头函数

1 篇文章 0 订阅

es6更多信息(engish doc)

没有参数

需要在箭头函数前加小括号

var log = ()=>{alert('123')}; log

简单参数

var testArrowFunction = a=>{console.error(a)}; testArrowFunction(123);

多参数

var addTest = (index1, index2) => index1 + index2;  addTest(1,2);
//结果3

返回对象时

返回的对象外面的小括号可以要也可以不要

var getPersonInfo = () => { return ({name: 'zhao', age: '27'})}; getPersonInfo()
//结果: Object {name: "zhao", age: "27"}

函数体内多条语句

需要用大括号{}

var add = (number1, number2) => {if(typeof number1 === 'number' && typeof number2 === 'number'){return number1+number2;} else{return 0;} }; add(1,2)
//result: 3

作为事件的回调函数

需要用大括号{}

document.addEventListener('click', event => {console.log(event.name)});

作为数组的回调函数

需要用大括号{}

[1,2].map( (value, index) => {console.log(value + ',' + index);}) 
//result: 1,0
//result: 2,1

注意事项

箭头函数式一个函数function

var fun = ()=>{}; typeof fun; console.log(fun instanceof Function);
//'function'

arrow function is the instance of Function

console.log(fun instanceof Function);

this不变,回调函数中的this指向了这个对象, 并不指向window顶层对象了, 以后不需要bind(), self, _this = this等操作了

obj = {
    data: ['John Backus', 'John Hopcroft'],
    init: function() {
        document.onclick = ev => {
            alert(this.data) // ['John Backus', 'John Hopcroft']
        }
        // 非箭头函数
        // document.onclick = function(ev) {
        //     alert(this.data) // undefined
        // }
    }
}
obj.init()

不能用new

var fun = ()=>{}; new fun()
//Uncaught TypeError: fun is not a constructor(…)

不能用arguments

var fun = (a,b)=>{arguments}; fun(1,2)
//Uncaught ReferenceError: arguments is not defined(…)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值