在JavaScript中存储和迭代函数指针

Store and iterate function pointers in JavaScript

本文关键字:迭代 函数 指针 存储 JavaScript      更新时间:2023-09-26

我想将函数指针存储在数组中,然后在foreach循环中执行所有指针。

var array = new Array();
array['foo'] = function() { doFoo(); };
array['bar'] = function() { doBar(); };

如何迭代和执行数组中的所有函数?

首先,如果您真的想使用非数字属性名称,则不需要数组:

var obj = {};
obj["foo"] = function() { doFoo(); }
obj["bar"] = function() { doBar(); }

迭代和调用函数:

for (var k in obj) {
  obj[k]();
}

迂腐的是,通常认为确保您不会遇到从原型继承的意外属性是个好主意:

for (var k in obj) {
  if (obj.hasOwnProperty(l))
    obj[k]();
}