动态变量名称语法

另一个让我陷入困境的新手问题。

我有三个变量

var state1 var state2 var state3 

我需要在.click事件中访问其中一个,具体取决于被点击对象的属性。

如何访问正确的变量? 基本上我需要通过将“state”和正确的数字加在一起来获取变量名。

我会尽快用一些代码更新这篇文章以备不时之需。

 var backstate1; var backstate2; var backstate3; var currentFrame; function hotspotHover(){ var currentElement = this; var daName =this.name; $("#hotspot" +daName).hover( function() { $("img.changeOutline").prop("src", currentElement.outlinesArray[currentFrame]); $("#outlines").show(); }, function() { $("#outlines").hide(); } ).click(function() { var backstateLevelNumber = currentElement.backStateLevel; //not working window['backstate'+ backstateLevelNumber]=currentFrame; //trying to set backstate+number to current frame variable hoverClick(currentElement.defaultFrame); checkReverse(); checkSeqLoop(); }); }; 

使用数组可以解决您的问题:

 var states = [null, null, null]; 

然后访问它们:(假设currentStateId是当前状态号)

 var currentState = state[currentStateId] //Access state 

并设置:

 states[currentStateId] = "State"; //Set State 

将状态添加为数组:

 var states = [ 'state1', 'state2']; var stateNumber = 0; var state = states[stateNumber];