JavaScript中的箭头函数

箭头函数

1.用法

//常规的定义
var func1 = function(a,b){...}
//箭头函数
var func1 = (a,b) => {...}

//常规(函数体中只有一行return代码)
const func2 = function(a,b){return a + b}
//箭头
const func2 = (a,b) => a + b

//常规(参数只有一个)
const func3 = function(a){return a*a }
//箭头(当参数只有一个时,可以省略括号)
const func3 = a => a*a 

2.箭头函数的this

箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this。

下面的例子解析:

  • setTime1-------this是window

  • setTime1-1-------this是window

  • setTime1-2使用箭头函数,没有this,所以继承了setTime1中的this

  • setTime2使用箭头函数,没有this,所以继承了f1中的this,this值为obj对象

  • setTime2-1-------this是window

  • setTime2-2 使用箭头函数,没有this,所以继承了setTime2中的this,所以是obj对象

const obj = {
    f1(){
        //this==obj
        //setTime1
        setTime(function(){
            //setTime1-1
            setTime(function(){  
                console.log(this);   //window(自身的)
            })
            
            
            //setTime1-2
            setTime(()=>{
                console.log(this);   //window(继承于setTime1)
            })
        })
       
        
        
        
        
        
        //setTime2
         setTime(()=>{
            //setTime2-1
            setTime(function(){
                console.log(this);  //window(自身的)
            })
            
            
            //setTime2-2
            setTime(()=>{
                console.log(this);  //object(继承于setTime2,而setTime2继承于f1函数,所以等于object)
            })
        })
        

    }
}
posted @   鸭梨的药丸哥  阅读(23)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示