请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

箭头函数作为一个函数的回调参数传参的问题

老师
export class Main{

const loader =ResouceLoader.create();
loader.onLoaded(map=>this.onResourceFirstLoaded(map));//不理解为什么要这样写

onResouceFirstLoaded(map){
	this.ctx = xxx;
}

}

export class Main{

const loader =ResouceLoader.create();
loader.onLoaded(this.onResourceFirstLoaded );

onResouceFirstLoaded(map){
	this.ctx = xxx;//报错不认识ctx
}

}

onLoaded是资源加载器类的一个函数,他的传入参数是一个回调函数,为什么
loader.onLoaded(this.onResourceFirstLoaded )这样写会有问题,this.onResourceFirstLoaded是Main类的一个函数啊?
还有写成map=>this.onResourceFirstLoaded(map),这是箭头函数的另一种写法吗?怎么理解它?
我理解的箭头函数是(map)=>{函数内容}
上面如何理解他?可以单纯的理解为用this.onResourceFirstLoaded函数内容替换的形式吗,下面这样。
map=>{
this.ctx = xxx;//报错不认识ctx
}

正在回答 回答被采纳积分+3

1回答

傅猿猿 2018-11-29 18:14:13

这个是作用域问题,比如说,你如果是匿名回调的话,this指向函数本身,而箭头函数其实是指向最外层的类的。这样就可以避免self这种hack写法了

0 回复 有任何疑惑可以回复我~
  • 提问者 慕沐11207 #1
    我突然理解了这个,之前是设置自带的回调函数 比如setTimeout设置回调函数  现在是给自己定义的函数设置回调函数就已下载没反应过来 汗!!!
    还有就是map=>this.onResourceFirstLoaded(map)这个箭头函数的写法  是不是把回调函数体单独写到一个函数的写法?
    回复 有任何疑惑可以回复我~ 2018-11-30 09:36:07
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信