Javascript Jslint无法识别错误排序函数的选项

Javascript Jslint无法识别错误排序函数的选项,javascript,jslint,Javascript,Jslint,我使用JavaScript注释来设置选项 /*jslint undef: false, browser: true */ 允许按照错误的顺序排列函数和变量定义。我也尝试将其设置为“true”,但这也不起作用 然而,我仍然得到 “vFlipB”是在定义之前使用的 vFlipB('mi_cover'); 此函数首先在第299行调用: Mo.UserAny = { pre : function (o_p) { vFlipB('mi_cover');

我使用JavaScript注释来设置选项

/*jslint undef: false, browser: true */
允许按照错误的顺序排列函数和变量定义。我也尝试将其设置为“true”,但这也不起作用

然而,我仍然得到

“vFlipB”是在定义之前使用的

        vFlipB('mi_cover');
此函数首先在第299行调用:

Mo.UserAny = {
    pre : function (o_p) {
        vFlipB('mi_cover');
        if ((localStorage.hash === '0') || (localStorage.hash === undefined) || (localStorage.hash === null)) {
            o_p.result = 'complete';
            Vi.Ani.flipP('sp');
            return o_p;
        }
。 .

但直到下文才有定义:

958年

/**
 **  vFlipB
 */

function vFlipB( current_id ) {

    // turn on

    var current_link = document.getElementById( current_id + '_l' ),
        current_box = document.getElementById( current_id );

    current_box.style.opacity = 1;
    current_link.style.borderBottom = '2px solid #31baed';   

    // turn off

    if( vFlipB.previous_box !== undefined && vFlipB.previous_box !== current_box ) {
        vFlipB.previous_box.style.opacity = 0;
        vFlipB.previous_link.style.borderBottom = '';  
    }

    // set current to static previous

    vFlipB.previous_box = current_box;
    vFlipB.previous_link = current_link;
}
使用以下命令:

/*jslint unde:true、sloppy:true、browser:true*/

根据,在严格模式下,
undef
选项不可用。因此,您需要设置
sloppy:true
(好名字,嗯?)并删除任何
“使用严格”语句。(您还反转了
unde
的值)

当然,也有使用严格模式的方法。如果要避免警告但仍使用严格模式,则实际上只有三个选项:

  • 使用JSHint而不是JSLint
  • 放置
    “严格使用”位于每个单独函数体的顶部,而不是文件或模块的顶部。(但不能将其放在调用vFlipB()的函数中,否则会返回警告)
  • 更改代码以避免调用定义较低的函数。您可以对代码进行重新排序,将其拆分为单独的模块,或者使用如下技巧:

    var vFlipB;
    ...
    vFlipB();
    ...
    vFlipB = function () { ... };
    

我们可以看到您的代码的其余部分吗?因为这部分很好,无法修改。所以我刚刚发布了代码的两个区域。为什么不将函数放在第299行部分之前?您在哪里调用了jslint的选项?只需在.js文件顶部添加注释-/*jslint unde:false,browser:true*/