/*没有参数的时候
* ()不可省略,否则报错
* */
let fn1 = () => console.log('我是箭头函数fn1')
fn1() // '我是箭头函数fn1'
/*
* 只有一个参数的时候
* ()可省略
*
* */
let fn2 = a => console.log(a)
fn2('我是箭头函数fn2') // '我是箭头函数fn2'
/*
* 两个参数
* ()不可省略
* */
let fn3 = (a, b) => console.log(a + b)
fn3(3, 5) //8
//函数体
/*
* 只有一条语句时候,{}可省略,并且默认返回这条语句
*
* */
let fn4 = (a, b) => a + b
console.log(fn4(4, 4)) //8
/*
* 多条语句,{}不可省略
*
* */
let fn5 = (a, b) => {
console.log(a, b) // 1 2
// a + b 所有的函数都有reture,没有明确指出返回值,测返回undefined
return a + b
}
// console.log(fn5(10, 10)) // undefined
console.log(fn5(1, 2)) //3
//----------------------------------------------------------------
//箭头函数的this
/*
* 箭头函数没有直接的this,this的指向不是由调用的时候决定的,而是在定义的时候处在的对象都是箭头函数的this
*
* */
//箭头函数的外部没有其他函数包裹,所以this指向window
let fn6 = () => console.log(this)
fn6() // window
//外面包裹箭头函数setName,this指向obj,所以箭头函数的this都是指向obj
let obj = {
name: '123',
setName() {
let fn7 = () => {
console.log(this)
}
fn7()
}
}
obj.setName() //obj
ES6箭头函数的特点以及this的指向,通俗理解
最新推荐文章于 2022-11-23 10:12:41 发布