es6(六) 箭头函数

作用: 定义匿名函数

基本语法:

没有参数: () => console.log('xxxx') *

一个参数: i => i + 2

大于一个参数: (i, j) => i + j

函数体不用大括号: 默认返回结果

函数体如果有多个语句, 需要用 {}包围, 若有需要返回的内容, 需要手动返回

使用场景: 多用来定义回调函数

箭头函数的特点:

1、 简洁

2、 箭头函数没有自己的this, 箭头函数的this不是调用的时候决定的, 而是在定义的时候处在的对象就是它的this

3、 箭头函数的this看外层的是否有函数,如果有, 外层函数的this就是内部箭头函数的this,如果没有, 则this是window。

let fun = () => console.log("我是箭头函数")
fun()

//形参的情况
// 1. 没有形参的时候
let fun1 = () => console.log('我是箭头函数')
fun1()

// 2. 只有一个形参的时候 () 可以省略
let fun2 = a => console.log(a)
fun2('aaa')

// 3. 两个及两个以上形参的时候, ()不能省略
let fun3 = (x, y) => console.log(x, y);
fun3(25, 36) //25 36

// 函数体的情况
// 1.函数体只有一条语句或者是表达式的时候{}可以省略 -->会自动返回语句执行的结果,或者表达式的结果
let fun4 = (x, y) => x + y;   // 相当于 let fun4 = (x, y) => { return x+y } 
console.log(fun4(24, 36)) // 60

// 2.函数体不止一条语句或者表达式的情况{}不可以省略
let fun5 = (x, y) => {
    console.log(x + y);
    x + y
        // return x + y  // 多条语句的时候要手动return出去,不能省略
}
console.log(fun5(35, 49)) // undefined

let obj = {
    name: '箭头函数',
    getName1: function() {
        btn.onclick = () => {
            // 普通函数中this,谁调用了那个函数,那个this就指向谁
            //此处this指向它的上一层getName函数,外部obj调用了getName函数,所以this属于obj
            console.log(this) 
        }
    },
    getName2: () => {
        btn.onclick = () => {
            console.log(this) 
        // 此处this指向它的上一层getName函数,getName函数属于箭头函数,它的this指向它的上一层函数,
        // 因为getName的上一层是window,所以this指向window
        }
    }
}

obj.getName1()
obj.getName2()

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值