我有以下代码:
doAjax = function () {
$.ajax({
cache: false,
url: url,
dataType: 'html'
})
.done(onDone)
.fail(onFail)
.always(function () {
;
});
},
onDone = function (data) {
content = data;
if (content.match(/^[eE]rror/)) {
mvcOnFailure(content);
} else {
我收到错误的jslint说" onDone"在定义之前使用。这是我应该避免的,这是一个问题。请注意,doAjax和onDone函数都包含在另一个函数中。
答案 0 :(得分:2)
如果您将其定义为:
function onDone() {}
然后,您不必在同一范围内使用它之前定义它,因为所有这样的函数定义都会自动“提升”到函数的顶部,并在该范围内的任何代码运行之前定义。
如果您将其定义为:
onDone = function() {}
然后,javascript尊重您运行代码的顺序,onDone
没有此值,直到您的函数中正常的代码执行流程执行该代码行,因此需要执行此行在调用任何使用onDone
的内容之前。