回调函数 函数名直接调用 与 写函数 的区别??
来源: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回答
-
也就是 callback 回调函数使用的是:map => this.onResourceFirstLoaded(map)
你这里理解的不对,这里的map,前面的是形参,其实类似于一个占位符,就是告诉回调,我要调用这个map参数啦。后面呢,就像填空一样把占位符填满了,也就是把map传进去了。
而所有的this绑定的变量,其实是在类原型链上绑定的,你这么理解,就是把它当成一个对象,只有事先绑定的值才可以this取出来112018-06-14
相似问题