【JavaScript】浅析IIFE(立即执行函数表达式)的作用
什么是IIFE
IIFE就是立即执行函数表达式(Immediately-Invoked Function Expression)
为什么需要IIFE
应用IIFE有两个比较经典的使用场景,
第一就是在循环中定时输出数据项,
for(var i=0;i<5;i++){
setTimeout(function(){
console.log(i);
},1000);
}
上面输出的并不是0,1,2,3,4而是5,5,5,5,5
for(var i=0;i<5;i++){
(function(i){
setTimeout(function(){
console.log(i);
},1000);
})(i)
}
这输出的才是0,1,2,3,4
第二是类似于jQuery/Node的插件和模块开发
(function($){
//代码
})(jQuery)
【JavaScript】浅析IIFE(立即执行函数表达式)的作用的更多相关文章
- [转]Javascript中的自执行函数表达式
[转]Javascript中的自执行函数表达式 本文转载自:http://www.ghugo.com/javascript-auto-run-function/ 以下是正文: Posted on 20 ...
- 【JavaScript专题】--- 立即执行函数表达式
一 什么是立即执行函数表达式 立即执行函数表达式,其实也可以叫初始化函数表达式,英文名:IIFE,immediately-inovked-function expression.立即执行函数表达式就是 ...
- IIFE 立即执行函数表达式-模块化
1)立即执行 2)表达式 3)括号,分号结束 | 前缀运算符 | 表达式上下文 4)只需要执行一次,内部变量无需维护,可用于初始化 (function( ) { })( ); 或 (function( ...
- (译)详解javascript立即执行函数表达式(IIFE)
写在前面 这是一篇译文,原文:Immediately-Invoked Function Expression (IIFE) 原文是一篇很经典的讲解IIFE的文章,很适合收藏.本文虽然是译文,但是直译的 ...
- 详解javascript立即执行函数表达式(IIFE)
立即执行函数,就是在定义函数的时候直接执行,这里不是申明函数而是一个函数表达式 1.问题 在javascript中,每一个函数在被调用的时候都会创建一个执行上下文,在函数内部定义的变量和函数只能在该函 ...
- 立即执行函数表达式(IIFE)
原文地址:benalman.com/news/2010/11/immediately-invoked-function-expression/ 译者:nzbin 也许你还没有注意到,我是一个对术语比较 ...
- JS立即执行函数表达式(IIFE)
原文为 http://benalman.com/news/2010/11/immediately-invoked-function-expression/#iife ----------------- ...
- IIFE(立即执行函数表达式)
我们经常会看到这样的写法: ;(fuction () { // do something })() 这就是一个简单的IIFE(立即执行函数表达式,immediately-invoked functio ...
- IIFF(立即执行函数表达式)
立即执行函数表达式(Immediately-invoked function expression,IIFF) 在javascript(ES5)中,是没有块级作用域的概念的 for (var i = ...
随机推荐
- 放入MP3的文件夹显示一些没用的标题,艺术家,唱片集怎么办?
原来的文件大小,类型,修改日期,创建日线都没了,怎么办? 右键点击名称,标题,艺术家那一行,在右键菜单中,去掉没用的,勾选有用的,如下图:
- slf4j、jcl、jul、log4j1、log4j2、logback大总结
1 系列目录 jdk-logging.log4j.logback日志介绍及原理 commons-logging与jdk-logging.log4j1.log4j2.logback的集成原理 slf4j ...
- sed awk tr等文本处理命令
指定行范围替换: sed -i "520,950s/\(.*\)\(HOST_CMD_.*\)\(,\)/\1{ \2, \"\2\" },/g" hostCm ...
- SQL Server中float转字符串进度丢失
写了个函数接受varchar的参数, 但实际传入的是float, 但是转换后舍入成2位小数了, 单独执行没问题, 从table中查询输出就有问题 REF SELECT CAST(CAST(字段 AS ...
- 使用迭代器遍历List的时候修改List报ConcurrentModificationException异常原因分析
在使用Iterator来迭代遍历List的时候如果修改该List对象,则会报java.util.ConcurrentModificationException异常,下面看一个例子演示: package ...
- SQL基础试题
第3章 关系数据库标准语言SQL 一.选择题 1.SQL语言是 的语言,易学习. A.过程化 B.非过程化 C.格式化 D.导航式 答案 ...
- 图像检索:RGBHistogram+欧几里得距离|卡方距离
RGBHistogram: 分别计算把彩色图像的三个通道R.G.B的一维直方图,然后把这三个通道的颜色直方图结合起来,就是颜色的描写叙述子RGBHistogram. 以下给出计算RGBHistogra ...
- JVM的结构
参考:http://blog.csdn.net/tonytfjing/article/details/44278233 JVM的结构 一般认为,JVM分为四大部分: 1.类加载器(ClassL ...
- set-matrix-zeroes当元素为0则设矩阵内行与列均为0
题目描述 Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. c ...
- python3新特点
#xiaodeng #python 3 #1.编码方式和性能 ''' 1.py3运行效率更快 2.默认源文件编码ASCII变为UTF-8,以前文件前加入的coding=utf-8不再需要 3.针对un ...