js闭包实现按秒计数
这里给大家分享一个小技巧,使用javascript闭包实现按秒计数,代码如下:
var i =1; for(i; i<10; i++){ (function(num){ setTimeout(function(){ console.log(num); }, num*1000); })(i); }
重点在闭包的作用域。
以上所述就是本文的全部内容了,希望大家能够喜欢。
相关推荐
-
javascript深入理解js闭包
一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量. Js代码 var n=999; function f1(){ alert(n); } f1(); // 999 另一方面,在函数外部自然无法读取函数内的局部变量. Js代码 function f1(){ var n=999; } alert(n); // error 这里有一个地方需要注意,函数
-
详解js闭包
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 闭包有三个特性: 1.函数嵌套函数 2.函数内部可以引用外部的参数和变量 3.参数和变量不会被垃圾回收机制回收 闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量 使用闭包有一个优点,也是它的缺点,就是可以把局部变量驻留在内存中,可以避免使用全局变量.全局变量在每个模块都可调用,这势必将是灾难性的. 所以
-
js闭包的用途详解
我们来看看闭包的用途.事实上,通过使用闭包,我们可以做很多事情.比如模拟面向对象的代码风格:更优雅,更简洁的表达出代码:在某些方面提升代码的执行效率. 1 匿名自执行函数 我们知道所有的变量,如果不加上var关键字,则默认的会添加到全局对象的属性上去,这样的临时变量加入全局对象有很多坏处, 比如:别的函数可能误用这些变量:造成全局对象过于庞大,影响访问速度(因为变量的取值是需要从原型链上遍历的). 除了每次使用变量都是用var关键字外,我们在实际情况下经常遇到这样一种情况,即有的函数只需要执行一
-
用js闭包的方法实现多点标注冒泡示例
这两天在做地图这块,一点点js代码,各种坑.第一次接触js,各种难,下面就这几天的研究做一些总结,求坑 在事件监听器中使用闭包 在执行事件监听器时,通常可取的做法是将私有数据和持久性数据附加到对象中.JavaScript 不支持"私有"实例数据,但是支持允许内部函数访问外部变量的闭包.在事件监听器中,闭包非常适用于访问通常不附加到发生事件的对象的变量. 以下示例在事件监听器中使用了函数闭包将加密讯息分配给一组标记.点击每个标记将会看到加密讯息的一部分,该讯息并不包含在标记本身内. 复制
-
浅谈JS闭包中的循环绑定处理程序
前几天工作中写前端js代码时,遇到了遍历元素给它添加单击事件.就是这个问题让我整整调了一个下午.最后还是下班回家,上网查资料才知道怎么解决的. (PS:之前也在<jQuery基础教程>第四版中看过讲循环绑定处理程序的内容,当时估计也没怎么用心看,所以没记起来.) 大神要是知道这类情况,可以关掉窗口,写这些主要是给像我一样的小白看的.谢谢! 先贴上错误的例子让大家看看.(例子里面用到jQuery,请导入jQuery库) 复制代码 代码如下: <!DOCTYPE html PUBLIC &q
-
javascript学习笔记(十三) js闭包介绍(转)
一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量. 复制代码 代码如下: var n=999; function f1(){ alert(n); } f1(); // 999 另一方面,在函数外部自然无法读取函数内的局部变量. 复制代码 代码如下: function f1(){ var n=999; } alert(n); // error 这里
-
js闭包实例汇总
Js闭包 闭包前要了解的知识 1. 函数作用域 (1).Js语言特殊之处在于函数内部可以直接读取全局变量 复制代码 代码如下: <script type="text/javascript"> var n=100; function parent(){ alert(n); } parent();//100 </script> 如果在php里 复制代码 代码如下: <?php $n=100; function parent(){ echo $n; }
-
js闭包实现按秒计数
这里给大家分享一个小技巧,使用javascript闭包实现按秒计数,代码如下: var i =1; for(i; i<10; i++){ (function(num){ setTimeout(function(){ console.log(num); }, num*1000); })(i); } 重点在闭包的作用域. 以上所述就是本文的全部内容了,希望大家能够喜欢.
-
js闭包和垃圾回收机制示例详解
前言 闭包和垃圾回收机制常常作为前端学习开发中的难点,也经常在面试中遇到这样的问题,本文记录一下在学习工作中关于这方面的笔记. 正文 1.闭包 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.作为一个JavaScript开发者,理解闭包十分重要. 1.1闭包是什么? 闭包就是一个函数引用另一个函数的变量,内部函数被返回到外部并保存时产生,(内部函数的作用域链AO使用了外层函数的AO) 因为变量被引用着所以不会被回收,因此可以用来封装一个私有
-
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
补充: 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 闭包的特性 闭包有三个特性: 1.函数嵌套函数 2.函数内部可以引用外部的参数和变量 3.参数和变量不会被垃圾回收机制回收 闭包的定义及其优缺点 闭包 是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量 闭包的缺点就是常驻内存,会增大内存使用量,使用不当很容易造成内存泄露. 闭包是javascript
-
js闭包的9个使用场景
1.返回值(最常用) //1.返回值 最常用的 function fn(){ var name="hello"; return function(){ return name; } } var fnc = fn(); console.log(fnc())//hello 这个很好理解就是以闭包的形式将 name 返回. 2.函数赋值 var fn2; function fn(){
-
一不小心就做错的JS闭包面试题
由工作中演变而来的面试题 这是一个我工作当中的遇到的一个问题,似乎很有趣,就当做了一道题去面试,发现几乎没人能全部答对并说出原因,遂拿出来聊一聊吧. 先看题目代码: function fun(n,o) { console.log(o) return { fun:function(m){ return fun(m,n); } }; } var a = fun(0); a.fun(1); a.fun(2); a.fun(3);//undefined,?,?,? var b = fun(0).fun(
-
分析js闭包引起的事件注册问题
背景:闲暇时间看了几篇关于js作用域链与闭包的文章,偶然又看到了之前遇到的一个问题,就是在for循环中为dom节点注册事件驱动,具体见下面代码: <!DOCTYPE html> <html> <head> <title>js闭包</title> <meta charset="utf-8" /> </head> <body> <button id="anchor1"&
-
js实现精确到秒的日期选择器完整实例
本文实例讲述了js实现精确到秒的日期选择器.分享给大家供大家参考,具体如下: <script> // 主调用函数是 setday(this,[object])和setday(this),[object]是控件输出的控件名,举两个例子: // 一.<input name=txt><input type=button value=setday onclick="setday(this,document.all.txt)"> // 二.<input
-
JS闭包用法实例分析
本文实例讲述了JS闭包用法.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script type="text/javascript"> // 第一,函数作为返回值 function fn(){ var m
随机推荐
- 一些很恶作剧的vbs程序代码
- vue学习笔记之v-if和v-show的区别
- DOM基础教程之使用DOM控制表格
- 在virtualbox中安装CentOS7图文教程
- Js密码强度实时验证代码
- 初步介绍PHP扩展开发经验分享
- [PHP] 《PHP边学边教》(01.开篇——准备工作)
- php实现的通用图片处理类
- Python实现获取域名所用服务器的真实IP
- 简要解读C++的动态和静态关联以及虚析构函数
- 基于Mysql的Sequence实现方法
- 修改MySQL的默认密码的四种小方法
- javaScript如何生成xmlhttp
- node.js中的querystring.unescape方法使用说明
- jquery 判断selection range 是否在容器中的简单实例
- java中把汉字转换成简拼的实现代码
- Nodejs学习笔记之测试驱动
- jQuery给元素添加样式的方法详解
- 浅谈struts1 & jquery form 文件异步上传
- wordpress之wp-settings.php