JS笔记

JSdeep(箭头函数)

2017-11-24  本文已影响9人  余生筑

箭头函数

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,失败了;*/
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)
上一篇下一篇

猜你喜欢

热点阅读