在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*/}