

this是undefined,怎么办呢?


this是undefined,怎么办呢?
用bind试试看
preloadScene的callback这么写的话,onSceneLoaded函数里面的this是callback的上下文
在loadScene里面这样写试试
var self=this;
var func=function(){self.onSceneLoaded}
cc.director.preloadScene(sceneName,func);
这里的callback就是onSceneLoaded,onSceneLoaded的上下文与loadScene的上下文不应该是一样的吗?
cc.director.preloadScene(sceneName, this.onSceneLoaded.bind(this)); 这样写确实可以,但问题是
onSceneLoaded的上下文与loadScene的上下文不应该是一样的吗?
为啥还要bind下?不明白了。。。。
回调不是由当前脚本调用的,而是由引擎调用的
所以感觉引擎这点写的有点问题。。。
你只传了函数对象进去,没有传调用者,假设你的函数有个参数,你传了一个对象的属性,你能在函数内获取到这个参数所属的对象吗?应该不能吧?只能获取到参数的值,函数也一样,你没有传调用者进去,只传了函数本身,以上纯属个人看法,如有错误请指正
var a = {c:10,b:20};
function call(v){
}
call(a.c)
你不能在函数内通过v获取到v所属的对象吧?
这是 js 的基础问题,如果不理解热心群众的解答,建议学习一下 js ~~~
你只是声明了一个回调函数。但是回调函数的作用于取决于调用它的对象。
所以你在声明回调函数的时候打印出this,这自然是undefined.
没有用