例如在cc.Class里面定义方法doFunc(){ var f1 = function(){cc.log(this);} },这里的this为空,这是什么原因?
JS语言基础知识:this是函数的call方法传入的第一个参数
你把对f1的调用理解成f1.call试试,单独的一个f1()就相当于是f1.call(undefined)啊
this当然是undefined了
所以根据js语言里this的定义,改的办法有两个:
- f1的值改为(function(){cc.log(this);}).bind(this)
2.调用f1的时候显式传入this值,即:f1()改为f1.call(this)或f1.apply(this)
记录下:在外面var value1= this; 然后方法里面用value1当做this使用