JCO*_*611 3 javascript variables function
所以我有一个循环执行函数的函数,例如:
function(f){
var variable;
for(z = 0; z < 10; z++){
variable = "cool";
setInterval(f)
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,真正的功能比这更复杂,但它是相同的理论.我希望能够在参数f中执行该函数并设置一些变量(例如变量),以便该函数可以使用它们,总的来说这是一个想法:
function say(f){
var variable = "hey";
setInterval(f);
}
say(function(){
alert(variable)
});
Run Code Online (Sandbox Code Playgroud)
在这里,应该有一个警告框说嘿.这是理论,但它不会起作用:
变量"变量"未定义
浏览器可能只是忽略错误并提醒undefined.
但无论如何,如何在不改变变量范围的情况下 "传递"变量.
JavaScript有闭包,所以你可以这样做:
var x = 0;
setInterval(function() {
//do something with x
}, 1000);
Run Code Online (Sandbox Code Playgroud)
在您的具体情况下,您应该这样做:
function say(f){
var variable = "hey";
setInterval(function() {
f(variable); //invoke the say function's passed-in "f" function, passing in "hey"
}, 1000);
}
say(function(arg){
//arg will be "hey"
alert(arg);
});
Run Code Online (Sandbox Code Playgroud)
setInterval接受两个参数,第二个是您希望延迟执行传入函数引用的时间量(以毫秒为单位).