看了官方的小游戏demo,有个疑惑: cc.Class内使用this和cc.Class外使用this一样吗?cc.Class外也能访问class内的东西?JS学艺不精,望指教!
有大神指导一下呗。。。
this 调用者的
最近看的官方的demo小游戏发现的这段代码,cc.Class内和cc.Class外竟然都可以使用this,而且还是一样的。不明白了。。
cc.Class 包裹的对象里的:
this.onCollisionEnter 已经设置了 赋值等于 外面的 onCollisionEnter
两者的context(JS上下文)最后变成一致的了。
给你一个原生的JS例子 就明白了:
function test(){console.log(this)}
function Demo(){ this.test=test;}
var demo =new Demo();
test();//这里返回window 直接运行,相当于 window.test();
demo.test(); //这里返回Demo
但是不建议这样写代码,这不是一个好习惯。
不一样,this代表调用this所在函数的对象,只能指对象。而cc.Class是一个匿名对象,你还可以var xx=cc.Class
明白了,非常感谢!

