Javascript:调用存储在变量中的方法

标签 javascript closures

我试图通过在一个上下文中创建一个方法并将其存储在全局变量中来利用 Javascript 闭包,以便稍后可以从另一个上下文中调用它。

//Global variable to hold the function
var revertEvent;

//creates the function and assigns it to the global variable
 function createRevertFunction(eventToBeReverted) {

            revertEvent = function () {
                alert("Now Restoring Event");
                $('#calendar').fullCalendar('renderEvent', eventToBeReverted, true);
            }          
  }

因此,“createRevertFunction”保存了原始对象的状态。调用此函数后,该对象“eventToBeReverted”会被修改,因此这提供了一种无需刷新页面即可将原始内容恢复到 UI 的方法。

我的问题是我似乎无法调用变量“revertEvent”中的函数。

我已经尝试过:

revertEvent();
revertEvent.call();
window[revertEvent]();

但它们都不起作用。任何帮助将不胜感激...!

最佳答案

我认为这里最可能的问题是您在通过 createRevertFunction 设置之前尝试调用 revertEvent。要验证此更改,请更改 revertEvent 的声明,如下所示

var revertEvent = function() { alert('not set yet'); }

如果在createRevertFunction之前调用,则会弹出“尚未设置”警报

关于Javascript:调用存储在变量中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4249383/

相关文章:

javascript - 在 Javascript 中作为参数接收的调用函数

ios - CGRect 在 vi​​ewDidLoad 之外的闭包中不工作

javascript - 如何自动分析我页面的 JavaScript?

javascript - 如何修改 hashbang url 的 Angular

javascript - Node.js 捕获闭包变量

javascript - 为什么我无法访问原型(prototype)函数(使用闭包)?

ios - Swift Closures - 如何传递参数并且没有返回值

closures - 如何从函数返回 Rust 闭包?

javascript - 使用 STOMP 调用一项接受多个参数的服务

javascript - 使用正则表达式从字符串中以特定顺序删除特定单词