我试图通过在一个上下文中创建一个方法并将其存储在全局变量中来利用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]();


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

最佳答案

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

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


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

10-06 08:16