【问题标题】:Store and iterate function pointers in JavaScript在 JavaScript 中存储和迭代函数指针
【发布时间】:2014-09-13 18:34:34
【问题描述】:

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

var array = new Array();

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

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

【问题讨论】:

  • JavaScript 数组旨在与数字索引一起使用。分配给同一个索引两次会覆盖之前的分配。
  • 问题是什么?
  • 更新了我的问题。双重迭代不是我的问题。抱歉有点不清楚。

标签: javascript arrays foreach function-pointers


【解决方案1】:

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

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]();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-21
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    相关资源
    最近更新 更多