【发布时间】:2018-04-16 08:24:55
【问题描述】:
对不起,如果我的问题标题有些混乱,但我不知道如何用一句话问这个问题......
我有这个代码:
clientInformation = (function() {
//var priser = null;
$.ajax({
'async': false,
'global': false,
'cache': false,
'url': stepp+'json/dataFile.json?ver='+Math.random(),
'dataType': "json",
'success': function(data) {
clientInformation = data;
//console.log('client collected',data);
}
});
return clientInformation;
})();
在页面加载时运行。 如果 dataFile.json 有变化,我想重新加载上面的脚本。
我希望如果我输入:
clientInformation()
函数会再次触发,但是... 我得到的只是:“clientInformation 不是函数”。
我试过了:
clientInformation
clientInformation.call()
我怎样才能重新调用上面的函数,而不必重写或创建一个单独的函数来重新做同样的工作?
【问题讨论】:
-
在成功回调中,你用这个来破坏函数...
clientInformation = data;将该变量名称更改为其他名称,您的问题就会消失。 -
对不起,没有。那根本没有帮助。我仍然收到“未捕获的 TypeError:clientInformation 不是函数”
-
实际上,我确实错过了其他东西。您正在立即执行它。只需将其更改为
var clientInformation = function() { ... },其周围或之后不带括号。它之后的那些导致它立即执行,所以clientInformation成为结果。也摆脱了回报。您将其设置为一个函数,因此您不需要返回该函数。