回调函数 函数名直接调用 与 写函数 的区别??

来源:3-5 ES6与小游戏资源加载器的封装

Bass小骏

2018-06-08

我看老师代码中 load.onLoaded(map => this.onResourceFirstLoaded(map))

也就是 callback 回调函数使用的是:map => this.onResourceFirstLoaded(map)

那我执行 load.onLoaded(this.onResourceFirstLoaded) 的时候,

在 onResourceFirstLoaded 中调用 map 可以。但是调用 Main.js 中的 this.ctx、this.canvas就会报错:

Uncaught TypeError: Cannot read property 'canvas' of undefined

而老师教程中的写法就没有问题,这是为什么?两种写法的区别在哪里?请老师解惑

写回答

1回答

傅猿猿

2018-06-09

也就是 callback 回调函数使用的是:map => this.onResourceFirstLoaded(map)
你这里理解的不对,这里的map,前面的是形参,其实类似于一个占位符,就是告诉回调,我要调用这个map参数啦。后面呢,就像填空一样把占位符填满了,也就是把map传进去了。
而所有的this绑定的变量,其实是在类原型链上绑定的,你这么理解,就是把它当成一个对象,只有事先绑定的值才可以this取出来

1
1
Bass小骏
非常感谢!
2018-06-14
共1条回复

微信小游戏入门与实战,一天之内搞定微信小游戏开发

官方同步,第一时间掌握整套微信小游戏开发核心技术

3515 学习 · 664 问题

查看课程