如何调用javascript函数而不更改其以前的值?

时间:2014-04-29 07:30:59

标签: javascript jquery html5 function switch-statement

我需要多次调用javascript函数而不更改它以前的值。 我有一个名为json的图标,里面有15个图标 我正在使用switch语句来调用各个图标的功能。 当地图图标出现时我有问题,因为地图图标通常将所有图标分组,这意味着它甚至可以有另一个地图图标。以下是我的代码。

for(var i = 0;i<icon.length;i++) {
   switch(icon.type) {
      case 1:
         display();
      case 2:
         map();
      ..
   }
}

地图功能就像

function map() {
   for(var i = 0;i<icon.length;i++) {
      switch(icon.type) {
         case 1:
            display();
         case 2:
            map();
         ..
      }
   }
}

如果map函数再次调用其自己的函数,则主映射函数中的值将覆盖。我不知道如何在不改变以前的值的情况下调用它自己的函数。 还有其他方法可以达到这个目的吗?

1 个答案:

答案 0 :(得分:0)

我不知道我是否理解你的问题,但你可以尝试使用称为memoization的技术。它用于缓存先前计算的值的结果,因此可以避免重新计算的需要。

这是一个简单的例子,如何做到这一点

function isPrime(value) {
if (!isPrime.anwers) isPrime.answers = {};
if (isPrime.answers[value] != null) {
    return isPrime.answers[value];
}

var prime = value != 1; // 1 can never be prime

for (var i = 2; i < value; i++) {
    if (value % i == 0) {
        prime = false;
        break;
     }
}

return isPrime.answers[value] = prime;
}