我试图在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);