次のようなコードがあります。
function dialog($link) {
    "use strict";
   function doDialogAjax() {
        $.ajax({
            cache: false,
            url: url,
            dataType: 'html'
        })
            .done(onDialogDone)
            .fail(onDialogFail);
   }
   function onDialogDone(data) {
        content = data;
   // ... 
   }
}
jslint は、onDialogDone がまだ定義されていないと文句を言います。コードの先頭でグローバルとして定義する必要がありますか? 私が尋ねている理由は、関数 onDialogDone がグローバルであるとは思わないからです。外側の関数内でまだ定義されていない関数です。
また、このように定義された関数は、最後の中括弧の後にセミコロンを付けるべきではないというのは正しいですか?