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

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

可以使用以下代码实现一个自动生成序号的接口: ```javascript let count = 1; // 计数器,初始值为1 function generateNumber() { const number = count; count++; // 每次调用后计数器增1 return number; } // 调用示例 console.log(generateNumber()); // 输出1 console.log(generateNumber()); // 输出2 console.log(generateNumber()); // 输出3 ``` 在上述代码中,我们定义了一个计数器 `count`,并且定义了一个 `generateNumber()` 函数来生成序号。每次调用 `generateNumber()` 函数时,它会返回当前计数器的值,并且将计数器自增1。这样就可以实现自动生成序号的功能。 如果你希望将这个接口作为一个 HTTP 接口提供,可以使用 Node.js 的 `http` 模块来创建一个简单的服务器,代码如下: ```javascript const http = require('http'); let count = 1; function generateNumber() { const number = count; count++; return number; } const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.write(`${generateNumber()}\n`); res.end(); }); server.listen(3000, () => { console.log('Server is running on port 3000'); }); ``` 在上述代码中,我们使用 `http.createServer()` 方法创建一个 HTTP 服务器,并且在服务器的回调函数调用 `generateNumber()` 函数来生成序号。最后,我们将生成的序号以纯文本的形式返回给客户端。你可以使用浏览器或者其他 HTTP 客户端来访问 `http://localhost:3000` 来测试这个接口。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值