js实现每次调用一个函数自动加1

来源:互联网 发布:马云否认淘宝是日本的 编辑:程序博客网 时间:2024/05/29 13:25

1.首先考虑使用闭包

  function getId () {
  'use strict';
  
  var i = 0;
  getId = function () {
    return i++;
  };
  return i++;
  
}


console.log(getId());
console.log(getId());

结果为

0

1

这段代码可以如我们期望地那样工作,也很简单,然而还有一点不完美,函数体内再次用到了 getId 这个函数名,下次我们如果要改函数名,还需要改内部的名字了。

2.使用 JavaScript 世界里的一等公民函数来创建闭包来解决试试,通过即时函数创建闭包,返回一个自增的值

var getId = (function () {
  
    "use strict";


    var i = 0;
    return function () {
        return i++;
    };
    
})();


console.log(getId());
console.log(getId());

结果

0

1

原创粉丝点击