在settimeout调用的函数中调用函数



我试图在setTimeout调用的函数call_scroll_page中调用函数scroll_page。而且我得到错误 file.js:5 Uncaught TypeError: scroll_page is not a function

function scroll_page() {
    return false;
}
function call_scroll_page() {
    var scroll_page = scroll_page();
    if(!scroll_page) {
        $test = true;
    }
}
setTimeout(call_scroll_page, 1000);
var scroll_page 

您在call_scroll_page函数内定义了一个称为scroll_page的新变量,该变量已掩盖了全局。

重命名该变量。

这是因为您声明了一个与函数相同名称的var。因此,在您的功能中,call_scroll_page() scroll_page是指局部变量。更改您的变量名称,它将按预期工作。

function scroll_page() {
    return false;
}
function call_scroll_page() {
    var scroll_page_var = scroll_page();
    if(!scroll_page_var) {
        $test = true;
    }
}
setTimeout(call_scroll_page, 1000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>

此行导致错误: var scroll_page = scroll_page();

请勿重新编辑带有scroll_page函数名称的东西。

它删除了函数的链接,替换为变量,调用一个不再"可call in NAME"的函数。

尝试:

function scroll_page() {
    return false;
}
function call_scroll_page() {
    var fn = scroll_page();
    if(!fn) {
        $test = true;
    }
}
setTimeout(call_scroll_page, 1000);

最新更新