0

我有以下代码:

    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 函数都包含在另一个函数中。

4

1 回答 1

2

如果您将其定义为:

function onDone() {}

然后,您不必在在同一范围内使用它之前定义它,因为像这样的所有函数定义都会自动“提升”到函数的顶部,并且在该范围内的任何代码运行之前定义。

如果您将其定义为:

onDone = function() {}

然后,javascript 尊重您运行代码的顺序,并且onDone在该行代码在您的函数中的正常代码执行流程中执行之前没有此值,因此需要在onDone调用任何使用的代码之前执行此行。

于 2012-09-26T05:30:15.247 回答