사실상 동일한 함수가 두 개 있습니다. 그들 사이의 유일한 차이점은 +
이고 하나는 -
입니다. 이것들은 각 함수에서 약 20 번 사용되므로, var로 이것을 더 간단하게 만들고 싶습니다.if/else가 함수에서 더하기 또는 빼기를 정의하면
나는 아직도 자바 스크립트를 아주 새로운, 그래서 어디서부터 시작 모르겠지만, 뭔가 같은 :
사실상 동일한 함수가 두 개 있습니다. 그들 사이의 유일한 차이점은 +
이고 하나는 -
입니다. 이것들은 각 함수에서 약 20 번 사용되므로, var로 이것을 더 간단하게 만들고 싶습니다.if/else가 함수에서 더하기 또는 빼기를 정의하면
나는 아직도 자바 스크립트를 아주 새로운, 그래서 어디서부터 시작 모르겠지만, 뭔가 같은 :
사용 :
var modifier = (blah blah) ? 1 : -1;
var example = value1 + (modifier * value2);
+1을위한 ellegance :) –
왜 그렇게
if (blah blah){
var symbol = '-';
} else{
var symbol = '+';
}
var example = value1 [symbol] value2;
감사 :
if (blah blah){
var example = value1 - value2;
} else{
var example = value1 + value2;
}
글쎄, 당신은 eval
사용할 수 있지만 나는이 같은 기능을 사용 :
var op;
if (condition) {
op = function(a, b) { return a - b; };
} else {
op = function(a, b) { return a + b; };
}
var example = op(value1, value2);
당신은 운영자에 의해 키가 기능을 포함하는 객체를 정의 할 수 있습니다. 이런 식으로 뭔가 :
var operations = {
'+': function(a, b) { return a + b; },
'-': function(a, b) { return a - b; }
}
var x = operations[condition ? '+' : '-'](value1, value2);
내가 @darthmaim 그래도 가장 좋은 방법이 있다고 생각하지만, 당신이 그런 *
, /
또는 %
같은 다른 연산자를 사용해야하는 경우가 달려있다.
+1 - 나는 거의 ** 똑같은 ** 것을 게시하려고합니다. [장난하지 마라!] :-) – techfoobar
var math = {
'+' : function(x,y) {return x + y;},
'-' : function(x,y) {return x - y;}
}
var usePlus = true;
math[usePlus ? '+' : '-'](1,2) // returns 3
게시 ... – mplungjan
이것은 jQuery와는 아무런 관련이 없습니다. 자바 스크립트입니다. 내가 당신을 위해 태그를 추가했습니다. –
다음을 시도해보십시오. http://stackoverflow.com/questions/5834318/are-variable-operators-possible – Satpal