记住,箭头函数指向的是外围的this ,这个解决在闭包函数下使用this ,指向不正确的问题
1. 谁调用,this就是谁var a={name:'agg', show:function(){ console.log(this.name) }} a.show() // agg 2.闭包函数中的this 不是调用的实例了,这是js的一个设计bug,可以使用 var that=this来解决 var a={name:'agg', show:function(){ display=function(){ console.log(this.name)}; display() }} a.show() // undefined3. that=this 效果 var a={name:'agg', show:function(){ var that=this; display=function(){console.log(that.name)}; display()}} a.show() // agg ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4. E6 语法,箭头相当于 that=this 了,所以5 才没有结果var b={name:'agg',show(){ console.log(this.name) }} b.show() //agg 5.var b={name:'agg', show:()=>{console.log(this.name) }} b.show() // undefiend 6.var b={name:'agg',show(){ display=()=>{console.log(this.name)}; display() }} b.show() // undefiend
转载于:https://www.cnblogs.com/haigui-zx/p/7764024.html