首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jQuery中使用动态生成的名称创建时态函数

问在jQuery中使用动态生成的名称创建时态函数
EN

Stack Overflow用户
提问于 2015-02-02 20:14:43
回答 1查看 183关注 0票数 0

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

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

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

  • sayHello1();
  • sayHello2();
  • ...etc

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

代码语言:javascript
复制
var sayHello = function (){
    console.log('hello');
};
sayHello();

问题是:如何使用jQuery?中动态生成的名称创建时态函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-02 20:28:49

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

代码语言:javascript
复制
var sayHello = function () { /* body */ };

等于

代码语言:javascript
复制
window['sayHello'] = function () { /* body */ };

现在,很明显,你不想像这样污染全局范围,所以你可以对任何其他对象做同样的事情。

代码语言:javascript
复制
dynamicFunctions = {};

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

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

但是,有一件事要记住,那就是为什么你一开始就这样做。因为我不确定你的具体要求,你为什么不能这样做呢?

代码语言:javascript
复制
// load external.js?oncomplete=sayHello&increment=4
sayHello(increment);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28285962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档