在javascript中从其他命名函数调用命名函数

我在Javascript中遇到了一个带有命名函数的问题。

我有这个重装function

SN.Reload = function(settings) { var _timer = null; var $grid = null; var init = function () { $grid = $(settings.wrapperSelector); if (_timer > 0 || _timer != null) _timer = settings.timer; else _timer = 600000; window.setInterval(function () { LoadData(); }, _timer); }; var LoadData = function () { $.ajax({ url: '/data.json', type: 'GET', dataType: 'json', cache: false, success: UpdateData, error: DataErrorHandler }); }; } 

在正常状态下,这将在X分钟运行LoadData函数 – 这可以按预期工作。

我现在有另一个命名函数

 SN.CreateJsonFromDate = function (settings) { .... var SuccessLoad = function () { _dateLoader.hide(); _wrapper.slideUp(); } } 

是否可以使用来自SN.Reload的LoadData在SN.CreateJsonFromDate中的SuccessLoad函数内?

LoadData函数成功调用UpdateData并从json数据更新HTML,我想在SN.CreateJsonFromDate中再次调用此函数,因为这将生成一个新的json文件。

不,因为简单的LoadData不存在于SN.Reload范围SN.Reload

如果您确实想重新使用LoadData函数,请不要将其范围限制在SN.Reload内部,而是(可能根据您的需要)将其作为SN.LoadData附加到命名空间

是的,如果你实例化SN.Reload 。 例如:

 var obj = new SN.Reload(settings); 

然后你可以使用这个对象的LoadData ,如下所示:

 obj.LoadData(); 

是的,您必须使用以下方法将LoadData公开:

 this.LoadData = function(){/*your code*/}