가능한 복제를 만드는 방법 :
Javascript dynamic variable name자바 스크립트 - 변수 이름을
내가 변수가 자바 스크립트 함수에 onClick 이벤트에서 전달되는 있습니다. 총 4 개의 변수가 있습니다 : 두 개는 방향을 나타내고 두 개는 속도 변화를 나타냅니다. 나는 어떤 방향이 선택되었는지 (가로와 세로에 대해 h_
또는 v_
) 평가 한 다음 필요한 속도를 (더 빠르거나 느리게) 적용하려고합니다.
지금 바로 방향을 평가하고 선택한 방향에 따라 다른 changeSpeed
함수를 호출하여 성공적으로 수행합니다.
내가 뭘하고 싶은지는 이러한 기능을 결합하는 것입니다. 이 예에서 $(direction + "speed")
은 h_speed
또는 v_speed
이됩니다.
자바 스크립트가 장착되어 있습니까? (진심으로, 미겔)
var h_speed = 10;
var v_speed = 10;
function changeSpeed(speed, direction){
var direction = direction;
switch (speed)
{
case 'slower':
$($direction + "speed") = $($direction + "speed")*2;
break;
case 'faster':
$($direction + "speed") = $($direction + "speed")/2;
break;
}
}
가 여기 내 작업 코드의 두 가지 버전이 있습니다 :
버전 1
var h_speed = 10;
var v_speed = 10;
function identifyDirection(speed, direction){
switch (direction)
{
case 'vertical':
v_changeSpeed(speed);
break;
case 'horizontal':
h_changeSpeed(speed);
break;
}
}
function h_changeSpeed(speed){
switch (speed)
{
case 'slower':
h_speed = h_speed*2;
break;
case 'faster':
h_speed = h_speed/2;
break;
}
}
function v_changeSpeed(speed){
switch (speed)
{
case 'slower':
v_speed = v_speed*2;
break;
case 'faster':
v_speed = v_speed/2;
break;
}
}
VERSION 2
/**
* the changeSpeed functions' arguments
* are placed directly in the function that
* determines whether horizontal or vertical
* speed is changing.
*
*/
function changeSpeed(speed, direction){
switch (direction)
{
case 'vertical':
switch (speed)
{
case 'slower':
v_speed = v_speed*2;
break;
case 'faster':
v_speed = v_speed/2;
break;
}
break;
case 'horizontal':
switch (speed)
{
case 'slower':
h_speed = h_speed*2;
break;
case 'faster':
h_speed = h_speed/2;
break;
}
break;
}
}
'경우 (방향 == '수직') { v_speed * = 속도 == '느림'? 2 : 0.5; } else { h_speed * = speed == 'slower'? 2 : 0.5; }' – zerkms
모두 감사합니다! 이 모든 답장은 훌륭합니다. zerkms, 너는 내가 지금까지 시도한 유일한 코드이며 작동한다. –