cc.Class内使用this和cc.Class外使用this一样吗?

看了官方的小游戏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

多谢指导!


不过我迷惑的是A处的realListenner是class内的属性(B处),怎么在class外(A处)也能访问了。

明白了,非常感谢!