Javascript 在setTimeout调用的函数中调用函数

Javascript 在setTimeout调用的函数中调用函数,javascript,jquery,Javascript,Jquery,我试图在由setTimeout调用的函数call\u scroll\u page中调用函数scroll\u page。我得到错误file.js:5未捕获类型错误:滚动页面不是函数 function scroll_page() { return false; } function call_scroll_page() { var scroll_page = scroll_page(); if(!scroll_page) { $test = true;

我试图在由
setTimeout
调用的函数
call\u scroll\u page
中调用函数
scroll\u page
。我得到错误
file.js:5未捕获类型错误:滚动页面不是函数

function scroll_page() {
    return false;
}
function call_scroll_page() {
    var scroll_page = scroll_page();
    if(!scroll_page) {
        $test = true;
    }
}
setTimeout(call_scroll_page, 1000);
您在
call\u scroll\u page
函数中定义了一个名为
scroll\u page
的新变量,该变量屏蔽了全局变量


重命名该变量。

这是因为您正在使用与函数相同的名称声明一个变量。因此,在函数中,
call\u scroll\u page()
scroll\u page指的是局部变量。更改变量名,它将按预期工作

功能滚动页面(){
返回false;
}
函数调用\滚动\页面(){
var scroll_page_var=scroll_page();
如果(!滚动页面变量){
$test=true;
}
}
设置超时(调用滚动页面,1000)

此行导致错误:
var scroll\u page=scroll\u page()

不要使用
scroll\u page
功能重新声明某个名称

它删除指向函数的链接,替换为一个变量,调用一个不再“可按其名称调用”的函数

尝试:


var scroll_page=scroll_page();谢谢大家,现在工作顺利。
var scroll_page 
function scroll_page() {
    return false;
}
function call_scroll_page() {
    var fn = scroll_page();
    if(!fn) {
        $test = true;
    }
}
setTimeout(call_scroll_page, 1000);