箭头函数及this指向

语法:

const aaa = (参数列表) =>{

}

 

1.最普通的箭头函数

非箭头函数写法:
const obj={ function aaa (){ } } 箭头函数: (1)无参数: const aaa = () =>{ }

(2)2个参数
const bbb = (num1, num2) =>{
  return num1 + num2
}

(3)1个参数(括号可以省掉)
const power = num3 =>{
  return num3 * num3
}

 

2.函数中

(1)函数代码块中有多行代码
const aaa = () =>{

    console.log('hello')
    console.log('hello Han Mei')
}

(2)函数中只有一行代码
const mul = (num1, num2) => num1 * num2

调用并打印结果:console.log(mul(2, 32))        ===64 

 

3.this指向

普通函数指向的都是window

箭头函数中的this,引用的是最近作用域中的this

const obj = {

    aaa() {
        setTimeOut(function () {
            console.log(this)   // window   

         })  
       
     // 最近的this是aaa里的this setTimeOut(() =>{ console.log(this) // obj对象 }) } }
const obj = {

    aaa() {
        setTimeOut(function () { 
       setTimeOut(function () {
console.log(this) // window对象
})       
        // 箭头函数找最近的this,最近的this是setTimeOut(function () { ...,所以这里是widow对象
      
setTimeOut(() =>{
console.log(this) // window对象
  })
   })   
      // 最近的this是aaa里的this,所以这里最外层的this是obj
         setTimeOut(() =>{
       setTimeOut(function () {
console.log(this) // window 无论啥时候,普通函数this都指向window
       })       
        // 箭头函数找最近的this,最近的this是setTimeOut(() =>{ ...,所以这里是obj对象
       setTimeOut(() =>{
console.log(this) // obj对象
  })
     }) 
  }
}

 

posted @ 2021-07-22 11:57  骑蝴蝶飞  阅读(140)  评论(0编辑  收藏  举报