我的脚本使用setTimeout函数时出错
例如,我的脚本就像
function student() {
var obj = {
name: "Mary",
number: +44 26281001
}
return obj
}
我想延迟执行该函数4秒钟,然后保存到变量x。我写了以下函数:
var x = setTimeout(student(), 4000);
它返回一个数字1280,然后4秒后返回错误:
Uncaught SyntaxError:意外的标识符
什么是错误,我该如何解决?非常感谢您的帮助。
你的电话号码应该是这样的
number: '+44 26281001'
// or
number: "+44 26281001"
所以number
成为一个字符串。并将函数本身作为参数传递,而不是调用它并传递student()
的结果作为参数。
var x = setTimeout(student, 4000);
顺便说一句,如果你想分配/记录学生对象,那么你需要像这样调用它:
setTimeout(()=>console.log(student()), 4000);
编辑
function student() {
return {
name: 'Mary',
number: '+44 26281001'
}
}
var studentVar;
var x = setTimeout(function() {
studentVar = student();
}, 4000);
console.log(x);
console.log(studentVar); // Logs 'undefined'
(function logXAfter5Seconds() {
setTimeout(() => {
console.log(x);
console.log(studentVar); // Logs the student object after 5 seconds
}, 5000);
})();