self 语法相关问题

版本 1.4.0

首先在onLoad: function () 里定义 var self=this;
这个self有效

但是在onLoad: function () 外的一个自建方法里
这个self失效

我记得之前在onLoad里面定义self后,整个js文件都可以用吧

举个例子:

onLoad: function () {
var self=this;
//这句没问题,其中spriteHero是一个cc.sprite,text是loadres调出的一个spriteFrame
self.spriteHero.spriteFrame=texture;
},

testfun: function () { //自定义一个方法
self.spriteHero.spriteFrame=texture;
//同样使用这句,会提示没有spriteFrame这个属性,也就是这个self错误了。
},

我记得以前在onLoad里面定义self后,整个文件里都可以正常使用把。
什么情况?

现在好像必须在方法里传输self才可以使用这个self了

没有这回事。你记错了。

self是用来保存this的,你把ccc里面的this指向谁,理解了就没有问题了

并不是整个文件 而是整个函数 和闭包有关