我试图在scroll_page
所调用的函数call_scroll_page
中调用函数setTimeout
。而且出现错误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);
答案 0 :(得分:1)
var scroll_page
您在scroll_page
函数中定义了一个名为call_scroll_page
的新变量,该变量掩盖了全局变量。
重命名该变量。
答案 1 :(得分:1)
这是因为您要声明一个与函数名称相同的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>
答案 2 :(得分:1)
此行导致错误:var scroll_page = scroll_page();
请勿重新声明具有scroll_page
函数名称的内容。
它将删除该函数的链接,并替换为变量,从而调用不再“可通过其名称调用”的函数。
尝试:
function scroll_page() {
return false;
}
function call_scroll_page() {
var fn = scroll_page();
if(!fn) {
$test = true;
}
}
setTimeout(call_scroll_page, 1000);