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

时间:2016-01-06 14:51:43

标签: javascript jquery json function

我遇到了Javascript中命名函数的问题。

我有这个重装功能

   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文件。

2 个答案:

答案 0 :(得分:2)

不,因为LoadData

范围之外不存在SN.Reload

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

答案 1 :(得分:2)

是的,如果您实例化LoadData。 例如:

obj.LoadData();

然后您可以使用此对象中的this.LoadData = function(){/*your code*/} ,如下所示:

<?php ... >

是的,你必须使用它来公开LoadData:

SimpleChannelInboundHandler