【发布时间】:2016-01-06 14:51:43
【问题描述】:
我在 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.CreateJsonFromDate 的 SuccessLoad 函数中使用来自 SN.Reload 的 LoadData ?
LoadData 函数在成功时调用 UpdateData 并从 json 数据更新 HTML,我想在 SN.CreateJsonFromDate 中再次调用此函数,因为这将生成一个新的 json 文件。
【问题讨论】:
-
看起来像一个私有函数。
-
等等...我能澄清一下
SN.Reload的意图是声明一些变量(其中一些是函数)然后什么都不做并放弃它们吗? -
@Katana314 - 是的,您可以澄清这一点,但这没有区别。
LoadData只能在SN.Reload范围内访问,并且在编写代码时,不能在其外部访问。 -
@Adam 我只是假设 Reload 用于主要目的,而 OP 现在想将其用于次要目的。由于代码示例是现在编写的,它甚至没有主要用途,因为它从未被调用过,并且一些压缩器会完全删除函数;我的意思是他可能遗漏了重要的代码。例如,如果他遗漏了确实以某种方式从外部访问它的代码,情况就会改变。
标签: javascript jquery json function