0

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

  • 第一次:external.js?oncomplete=sayHello1
  • 第二次:external.js?oncomplete=sayHello2
  • 第三次:external.js?oncomplete=sayHello3

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

  • 说你好1();
  • 说你好2();
  • ...ETC

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

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

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

4

1 回答 1

2

这更像是一个纯 JavaScript 问题。为简单起见,假设全局范围(窗口),

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);
于 2015-02-02T20:28:49.080 回答