我有以下 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/