3-5最后一段的回调函数为什么要这么写?
来源:3-5 ES6与小游戏资源加载器的封装
![](http://img1.sycdn.imooc.com/user/550ac5b600015ab101800180-100-100.jpg)
weibo_隱懓_0
2018-02-03
// 初始化整个游戏的精灵,作为游戏开始的入口 import {ResourceLoader} from "./js/base/ResourceLoader.js" export class Main { constructor() { this.canvas = document.getElementById('game_canvas'); this.canvas.getContext('2d'); const loader = ResourceLoader.create(); loader.onLoaded(this.onResourceFirstLoaded ) //loader.onLoaded(map => this.onResourceFirstLoaded(map)) } onResourceFirstLoaded(map) { console.log(map) } }
这样写我觉得更好懂一些,至于箭头写法有什么好处呢?
我现在仅仅觉得是由于用箭头写法是下面的改善写法。
self = this;
loader.onLoaded(function(map) {
return self.onResourceFirstLoaded(map)
})
但是反而更绕弯了似的。
请老师解答下两种写法的优缺点,谢谢
写回答
2回答
-
全是甘货
2019-08-17
同学,我也认为应该你那么写,更好懂,而且对onResourceFirstLoaded 在后面的执行没啥影响,像老师那样写首先我是怀疑人生的,进而觉得多此一举,最后还是没找到老师那样写的好处,或者说老师的所有回答都太惜字如金了,没有彻底关联到这样写的实际好处具体体现在哪里的代码(不这样写又会怎样)。
10 -
傅猿猿
2018-02-04
箭头函数最大的作用就是让this的作用域在外面,你想呀,如果直接传function的话,你外面所有的类中定义的类属性都不能用this取了 你必须通过类似self的方法重新在外面取一次,是不是挺累呀
10
相似问题