如何在调用之间调用函数调用私有变量

时间:2010-04-18 08:02:57

标签: javascript

这是我从无法找到的教科书中直接看到的。

我有一个javascript函数。我希望它包含一个私有变量,它记住它在调用之间的值。

请有人慢慢记住我的记忆。

4 个答案:

答案 0 :(得分:5)

使用闭包创建它:

function f() {
  var x = 0;
  return function() {return x++;};
}

然后按如下方式使用:

> g = f()
function () {return x++}
> g()
0
> g()
1
> g()
2

答案 1 :(得分:1)

 var accumulator = (function() {
    var accum = 0;

    return function(increment) {
       return accum += increment;
    }
 })();

 alert(accumulator(10));
 alert(accumulatot(15));

显示10然后25。

答案 2 :(得分:0)

这是一个真正的私人实施

    (function() {

        var privateVar = 0;

        window.getPreviousValue = function(arg) {
            var previousVal = privateVar;
            privateVar = arg;
            return previousVal;
        }

    })()

    alert(getPreviousValue(1));
    alert(getPreviousValue(2));

干杯

答案 3 :(得分:0)

我不确定我是否理解正确,但也许这样的事情可以解决问题:

function Foo() {
  var x = "some private data";
  return {
   getPrivateData : function(){
      return x;
   }
  };
};

var xx = new Foo();
xx.getPrivateData();