闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。相信很少有人能直接看懂这句话,因为他描述的太学术。其实这句话通俗的来说就是:JavaScript 中所有的 function 都是一个闭包。
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
这里给大家分享一个小技巧,使用 javascript 闭包实现按秒计数,代码如下:
- var i =1;
- for(i; i<10; i++){
- (function(num){
- setTimeout(function(){
- console.log(num);
- }, num*1000);
- })(i);
- }
重点在闭包的作用域。
来源: