Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop CreateJS中的类常量未定义_Oop_Adobe_Constants_Createjs - Fatal编程技术网

Oop CreateJS中的类常量未定义

Oop CreateJS中的类常量未定义,oop,adobe,constants,createjs,Oop,Adobe,Constants,Createjs,我试图为Adobe Animate中的“Main”类创建一个名为“SPEED”的常量。下面是我的代码 function Main(){ this.update.bind(this)); } Main.SPEED = 3.0; Main.prototype.update = function(evt){ console.log("SPEED"+SPEED); console.log(5+SPEED); } 问题是它显示为未定义。 如果我试着用它做一些计算,结果是NaN

我试图为Adobe Animate中的“Main”类创建一个名为“SPEED”的常量。下面是我的代码

function Main(){
    this.update.bind(this));
}

Main.SPEED = 3.0;

Main.prototype.update = function(evt){
    console.log("SPEED"+SPEED);
    console.log(5+SPEED);
}
问题是它显示为未定义。 如果我试着用它做一些计算,结果是NaN。 可以查看控制台提要的示例


原因是什么?

您已经正确定义了常数:

Main.SPEED = 3.0; 
但你没有使用它。在代码中定义了Main.SPEED,但在
update
函数中使用了SPEED,这是一个尚未定义的变量:

Main.prototype.update = function(evt){
    console.log("SPEED"+SPEED); // SPEED is not defined
    console.log(5+SPEED); 
} 
请尝试以下代码。在这个例子中,我定义了常数,以及
Main
函数的
speed
属性,设置为0。在每个刻度中,常量的值都会添加到
速度
属性中

function Main(){
    this.speed = 0;
    createjs.Ticker.addEventListener("tick", this.update.bind(this));
}

Main.SPEED = 3.0;

Main.prototype.update = function(evt){
    this.speed += Main.SPEED; 
    console.log("SPEED: " + this.speed);
}

var main = new Main(); 

谢谢你,我犯了一个愚蠢的错误。我还发现我的变量名不应该与类名相同(见下文),这是另一个愚蠢的错误。var Main=新的Main()//不正确。这就是为什么您应该在代码中保留命名约定的原因。例如,变量和函数名的大小写(如
main
isMoving
),以及类名称的大写字母(如
main
)。