您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页JSdeep(箭头函数)

JSdeep(箭头函数)

来源:华佗小知识

箭头函数

  • 箭头函数本身没有this,它的this由父级作用域传入,不能作为bind,call参数传入
var fn=()=>{
    console.log(this)
}

fn.call({name:'Lier'})
//{}
fn.bind({name:'Lier'})()
//{}
/*箭头函数的this不能作为bind,call参数传入*/
var fn=function (){
    console.log(this)
}

fn.call({name:'Lier'})
//{name:'Lier'}
fn.bind({name:'Lier'})()
//{name:'Lier'}
var fn=function(){
    return ()=>{
    console.log(this)
    }
}

fn.call({name:'Lier'}).call({name:'Zha'})
//{name:'Lier'}
/*第一个bind试图为箭头函数的父函数指定this,成功了;
  第二个bind试图为箭头函数指定this,失败了;*/
  • 因此,箭头函数的作用是使该箭头函数继承父级作用域的this
  • 我们可以用箭头函数省略一次bind
setTimeout(function(){
    console.log(this)
    setTimeout(()=>{
    console.log(this)
    },2000)
}.bind({name:'frank'}),1000)

等效于

setTimeout(function(){
    console.log(this)
    setTimeout(function(){
    console.log(this)
    }.bind(this),2000)
}.bind({name:'frank'}),1000)

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务