时间:2021-05-26
setTimeout经常被用于延迟执行某个函数,用法为:
复制代码 代码如下:
setTimeout(function(){
…
}, timeout);
有时为了进行异步处理,而使用setTimeout(function…,0);比如:
复制代码 代码如下:
function f(){
… // get ready
setTimeout(function(){
…. // do something
}, 0);
return …;
}
在setTimeout设定的函数处理器之前,函数f返回;
在使用异步处理时,尤其是使用闭包特性时,要特别小心;
例如:
复制代码 代码如下:
for(var i = 0 ; i < 10; i++){
setTimeout(function(){
console.log(i);
}, 0);
}
对于初次使用这种方式的同学来说,很可能会认为程序会打印0…9,可结果确实打印10个10;
问题就在于,当循环完成时,function得到执行,而i已经变成10,console.log(i)中使用的是10!
加入你的目的是打印0…9,那么可以换一种方式,用函数参数来保存0….9(其实也是利用了闭包):
复制代码 代码如下:
for(var i = 0 ; i < 10; i++){
setTimeout((function(i){
return function(){
console.log(i);
}
})(i), 0);
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Javascript中一个最重要的特性就是闭包的使用。因为闭包的使用,当前作用域总可以访问外部的作用域。因为Javascript没有块级作用域,只有函数作用域,
一、闭包闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。闭包有三个特性:1.函数嵌套函数;2.函数内部可
php的闭包(Closure)也就是匿名函数,是PHP5.3引入的。闭包的语法很简单,需要注意的关键字就只有use,use是连接闭包和外界变量。复制代码代码如下
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。闭包有三个特性:1.函数嵌套函数2.函数内部可以引用外部
JavaScript的闭包是一个其主动发展的特性,也是一个被动发展的特性.也就是说,一方面,JS有了闭包能更好解决一些问题.另一方面,JS为了解决某些问题,而不