簡體   English   中英

在定義之前使用了“ setTimeout”

[英]'setTimeout' was used before it was defined

這是我現在獲取代碼的唯一錯誤。

在定義之前使用了“ setTimeout”。

由於此行而發生:

setTimeout("a()");

為了通過驗證,我該怎么辦? 這是我的完整代碼:

/*global document, window */
function checkTime(i) {
    'use strict';
    if (i < 10) {
        i = "0" + i;
    }
    return i;
}
function a() {
    'use strict';
    var oct = ["0", "1", "2", "3", "4", "5", "6", "7"],
        octtime,
        oct1,
        oct2,
        oct3,
        oct4,
        oct5,
        oct6,
        octvalue,
        point = ".",
        now = new Date(),
        hours = now.getHours(),
        minutes = now.getMinutes(),
        seconds = now.getSeconds(),
        h = checkTime(hours),
        m = checkTime(minutes),
        s = checkTime(seconds),
        totsecs = [hours * 3600 + minutes * 60 + seconds + (now.getTime() % 1000) / 1000];
    octtime = Math.floor(totsecs / (86400 / 262144));
    oct1 = Math.floor(octtime / 32768);
    octtime -= 32768 * oct1;
    oct2 = Math.floor(octtime / 4096);
    octtime -= 4096 * oct2;
    oct3 = Math.floor(octtime / 512);
    octtime -= 512 * oct3;
    oct4 = Math.floor(octtime / 64);
    octtime -= 64 * oct4;
    oct5 = Math.floor(octtime / 8);
    octtime -= 8 * oct5;
    oct6 = octtime;
    octvalue = point + oct[oct1] + oct[oct2] + oct[oct3] + oct[oct4] + oct[oct5] + oct[oct6];
    document.getElementById('a').innerHTML = h + ":" + m + ":" + s;
    document.getElementById('b').innerHTML = octvalue;
    setTimeout("a()");
}
window.onload = a;

如果您正在開發瀏覽器環境,請聲明它: 設置環境

/*jslint browser: true, devel: true */

這將啟用瀏覽器中的所有功能-因此您也可以刪除窗口/文檔全局變量。

在使用它時,將其傳遞給函數而不是字符串

setTimeout(a); // and not "a()"

我認為您可以以這種方式嘗試,您已經有了正確的路線

/*global document, window */

只需調用帶有window前綴的setTimeout

window.setTimeout(a);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM