javascript - 传递一个以变量作为名称的函数引用

标签 javascript

我有以下 JavaScript 方法:

function 123_test_function(){

}

该函数由java生成并发送给客户端。 123 是组件的 id,因此它可以更改。即我可以有另一个名为 111_test_function() 的函数 我想传递这个函数作为引用。

所以我需要创建引用

var 123_test_function = function 123_test_function(){

}

在对象内的另一个 js 文件中,我有一个需要使用 123_test_function 引用的函数,如下所示:

useFunction(123_test_function);

我遇到的问题是函数的 123 部分。 在这个对象中,我有一个变量(uniqueID),它在函数开头有数字。 我需要的函数调用类似于:

useFunction(uniqueID+"_test_function");

这似乎没有传递函数,而是传递字符串。 我做错了什么吗?

最佳答案

首先,标识符(例如函数名称)不能以数字开头。

要解决您的问题,请使用一个对象,如下所示:

// 1. define an object to hold all your functions
var allFunctions = {};

// 2. store any function with a unique string as the ID
allFunctions['123_test_function'] = function () {
  // whatever
};

// 3. call the function
allFunctions['123_test_function']();
allFunctions[uniqueID + '_test_function']();

对象是关联数组。它们存储键/值对,因此它们完全按照您的要求进行操作。

请注意,函数在 JavaScript 中不需要名称,因此我在步骤 2 中没有使用 on。

关于javascript - 传递一个以变量作为名称的函数引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9787703/

相关文章:

javascript - 奇怪的内存行为

javascript - Flow js 谓词函数

javascript - 使用 javascript/jQuery 在 IE9 及以下版本中禁用/只读输入文本

javascript - 获取另一个数组中不存在的 JSON 对象

javascript - 如何在 jquery 中拖动可拖动时禁用页面滚动?

javascript - 使用 typescript 在类级别应用 scss 值

javascript - 在将 HTML 字符串附加到 DOM 之前使用 jQuery 对其进行操作

javascript - 有没有办法通过 JavaScript 使用 Google AutoML?

javascript - 获取新内容后重新加载脚本(无限滚动 wordpress + fancybox)

javascript - 在列中放置 div 的堆栈