欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

高阶函数(箭头函数)

程序员文章站 2022-06-12 21:43:00
...

ES6标准新增了一种新的函数:Arrow Function(箭头函数)


1.基础语法

//function 
function fn(a, b){
    return a + b;
}
//arrow function
(a, b) => { 
    return a + b
}

使用ES6箭头函数语法定义函数,将原函数的“function”关键字和函数名都删掉,并使用“=>”连接参数列表和函数体。

当函数参数只有一个,括号可以省略;但是没有参数时,括号不可省略

// 两个参数:
(x, y) => {
    return x * x + y * y
}

// 无参数:
() => {
    return 3.14
}
// 可变参数:
(x, y, ...rest) => {
    var i, sum = x + y;
    for (i=0; i<rest.length; i++) {
        sum += rest[i];
    }
    return sum;
}

2.this

箭头函数看上去是匿名函数的一种简写,但实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this是语法作用域,是固定不变的,由上下文确定

function定义的函数,this的指向随着调用环境的变化而变化

//使用function定义函数
function fn(){
    console.log(this)
};
var obj = {
    aa : fn
};
fn();  //Window
obj.aa();  //obj { aa : fn}
//使用箭头函数定义函数
var fn = () => {
    console.log(this)
};
var obj = {
    aa : fn
}
fn();  //Window
obj.aa();  //Window
相关标签: html5