在 jQuery 中创建具有动态生成名称的时间函数

Creating temporal functions with dynamically generated names in jQuery

我有一个动态加载的外部 javascript 文件,它有一个 oncomplete= 变量,每次调用时它的值都会增加。例如:

因此我需要动态创建函数来每次执行 oncomplete= 回调。这意味着,我需要使用这些名称创建函数:

这是我当前的代码,它创建了一个特定名称的函数:

var sayHello = function (){
    console.log('hello');
};
sayHello();

问题是:如何在 jQuery 中创建具有动态生成名称的时间函数?

这更像是一个纯粹的 javascript 问题。为简单起见,假设全局范围 (window),

var sayHello = function () { /* body */ };

等同于

window['sayHello'] = function () { /* body */ };

现在,很明显,您不想那样污染全局范围,因此您可以对任何其他对象做同样的事情。

dynamicFunctions = {};

var oncomplete = 'sayHello1';
dynamicFunctions[oncomplete] = function () { console.log('hello'); };

dynamicFunctions[oncomplete]();
// outputs hello to the console

不过,要记住一件事,那就是您一开始就这样做的原因。由于我不确定您的具体要求,您是否有理由不能这样做?

// load external.js?oncomplete=sayHello&increment=4
sayHello(increment);