Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Nodejs中创建临时对象_Javascript_Node.js_Variables - Fatal编程技术网

Javascript 在Nodejs中创建临时对象

Javascript 在Nodejs中创建临时对象,javascript,node.js,variables,Javascript,Node.js,Variables,可以创建临时对象吗 对象将在10秒内自动取消设置 也许我想用这样的东西 var foo = {}; foo[username] = 0; setTimeout(function () { delete foo[username]; }, 10000); 如果在1000多个对象上使用上述代码,则该代码对服务器有害吗 或者有人有更好的主意?您可以创建一个具有属性的对象,该属性将在指定的超时后自动将属性设置回未定义的 function Foo(timeout) { var temp; var

可以创建临时对象吗

对象将在10秒内自动取消设置

也许我想用这样的东西

var foo = {};
foo[username] = 0;
setTimeout(function () { delete foo[username]; }, 10000);
如果在1000多个对象上使用上述代码,则该代码对服务器有害吗

或者有人有更好的主意?

您可以创建一个具有属性的对象,该属性将在指定的超时后自动将属性设置回
未定义的

function Foo(timeout) {
  var temp;
  var timer;

  Object.defineProperty(this, 'temp', {
    get: function () {
      return temp;
    },
    set: function (value) {
      temp = value;
      timer = setTimeout(this.reset, timeout);
    }
  });

  this.reset = function() { temp = undefined; };
}
然后使用它看起来像:

// Console:
> var foo = new Foo(10000); // specifies how long to timeout in ms
> foo.temp // undefined
> foo.temp = 5;
> foo.temp // 5
> // 10 seconds ellapse
> foo.temp // undefined

您还可以在值存在或现有计时器运行时阻止任何更新。这一切都取决于设计需要。

您应该看看文档,了解您试图解决的实际问题是什么?@Bergi很抱歉解释得不好,我想使用节点irc为我的服务器创建一个机器人。我试着做防洪水,我的想法是每次有人聊天,我的机器人都会增加尼克属性int,所以如果有人在10秒内聊天超过5次,他就会被静音。编写的代码可以正常工作。但是,由于种种原因,这看起来是个坏主意。如果你能解释你真正想解决的问题,而不是问你想出的看起来像黑客的解决方案,那么我们可以讨论一下是否有非黑客的方法来解决你的问题。听起来你可能想要“利率限制”它测量并控制给定用户可以执行某项操作的频率,根据您想要执行的操作的细节,有很多现有的代码解决方案。我不认为这是OP想要的。哦,有副作用的二传手很难看…