setTimeout 立即执行,而不是在函数调用中传递时间
setTimeout executes immediately instead of time passed in the function call
我有这段代码来测试 setTimeout 函数。 console.log 在执行代码后立即被记录。知道为什么这个函数在 5 秒后没有被调用吗?这段代码有什么问题?
function formatName(fname,lname){
let fullName = fname+lname;
console.log(fullName);
}
setTimeout(formatName('Jon','Harris'),5000);
EDIT:
I didn't know about the way I need to call setTimeout.
setTimeout()
的第一个参数是函数,但在您的代码中,您正在执行该函数。使用箭头函数将其作为函数。
function formatName(fname,lname){
let fullName = fname+lname;
console.log(fullName);
}
setTimeout(() => formatName('Jon','Harris'),5000);
您可以按以下格式传递参数:
setTimeout(formatName, 5000, fname, lname);
function formatName(fname, lname){
let fullName = fname + ' ' + lname;
console.log(fullName);
}
setTimeout(formatName, 5000, 'Jon', 'Harris');
我有这段代码来测试 setTimeout 函数。 console.log 在执行代码后立即被记录。知道为什么这个函数在 5 秒后没有被调用吗?这段代码有什么问题?
function formatName(fname,lname){
let fullName = fname+lname;
console.log(fullName);
}
setTimeout(formatName('Jon','Harris'),5000);
EDIT:
I didn't know about the way I need to call setTimeout.
setTimeout()
的第一个参数是函数,但在您的代码中,您正在执行该函数。使用箭头函数将其作为函数。
function formatName(fname,lname){
let fullName = fname+lname;
console.log(fullName);
}
setTimeout(() => formatName('Jon','Harris'),5000);
您可以按以下格式传递参数:
setTimeout(formatName, 5000, fname, lname);
function formatName(fname, lname){
let fullName = fname + ' ' + lname;
console.log(fullName);
}
setTimeout(formatName, 5000, 'Jon', 'Harris');