摘要:一般没有问题,但是,建议在自己写的立即执行函数前加分号,这样可以有效地与前面代码进行隔离。否则,可能出现意想不到的错误。自执行函数前加个分号是什么意思写法最前最后加括号推荐这种写法外面加括号目前很多比较好的使用的都是第二种方式。
定义
立即执行函数模式是一种语法,可以让你的函数在定义后立即被执行,
这种模式本质上就是函数表达式(命名的或者匿名的),在创建后立即执行;
立即执行函数(immediate function)术语不是在ECMAScript标准中定义的,但它很短有助于描述和讨论模式;
这种模式有一些几部分组成:
使用函数表达式定义一个函数(函数声明不能起作用)
在结尾加上一对括号,让函数立即被执行
将整个函数包裹在一对括号中(只有在你不将函数赋值给一个变量的时候才需要)
功能它可以帮你封装大量的工作而不会在背后遗留任何全局变量。
你定义的所有变量都会成员立即执行函数的局部变量,所以你不用担心这些临时变量会污染全局空间
可以使用这种技术可以模仿一个私有作用域,用匿名函数作为一个“容器”,“容器”内部可以访问外部的变量,而外部环境不能访问“容器”内部的变量
可以添加更多的加强模块,移除它们,多带带测试它们,允许用户去禁用它们等等
为什么要有js立即执行函数,存在的意义是什么
立即执行函数通常作为一个多带带模块使用。一般没有问题,但是,建议在自己写的立即执行函数前加分号,这样可以有效地与前面代码进行隔离。否则,可能出现意想不到的错误。
js自执行函数前加个分号是什么意思?
最前最后加括号
(function(){alert(1);}());
JSLINT推荐这种写法
function外面加括号
(function(){alert(1);})();
目前很多比较好的js library 使用的都是第二种方式。
比如: web 图形绘制的: git , draw2d ,....
function前面加运算符,常见的是!与void
!function(){alert(1);}(); void function(){alert(2);}();
在function前面加!、+、 -甚至是逗号等到都可以起到函数定义后立即执行的效果,而()、!、+、-、=等运算符,都将函数声明转换成函数表达式,消除了javascript引擎识别函数表达式和函数声明的歧义
js中立即执行函数
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/80305.html
摘要:前言大家学的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行。其实,前面两个例子里的变量,也可以换成,因为和外面的不在一个作用于,所以不会出现问题,这也是匿名函数闭包的威力。 前言 大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行。 在详细了解这个之前,我们来谈了解一下自执行这个叫法,本文对这个功能的叫法也不一定完全对...
摘要:函数表达式又名匿名函数为变量赋的值是函数定义本身。在语言里任何匿名函数都是属于对象。这种情况下,就叫做回调函数。如上面代码示例展示了文档单击事件时以冒泡模式传递给回调函数的特别适用于事件驱动编程,因为回调模式支持程序以异步方式运行。 JavaScript设计模式的作用是提高代码的重用性,可读性,使代码更容易的维护和扩展 在javascript中,函数是一类对象,这表示他可以作为参数传递...
摘要:和的定义是指多少时间之后将回调函数加入到的执行队列之中回调函数是否立即执行取决于当前的执行队列是否空闲。比较好的例子如下回调函数执行其他操作假如内部的执行时间为那么的回调函数至少要等待才执行。 1、惰性加载函数 (判断各个浏览器中是否支持某个属性) function addEvent(elem, type, handler){ if(elem.addEventListener...
摘要:注意匿名函数自执行只是产生闭包的一种情况,闭包是现象或者情形,不实用匿名函数自执行也有很多情况产生闭包,所以而且根本就是两回事儿,不能混淆。小测验,你能看出下面的程序用了闭包吗闭包在中使用。闭包无处不在,直接看的例子。 通过文你将学到: 1.闭包是怎么回事儿? 2.闭包的原理和在jquery中的应用 3.从一到面试题彻底理解闭包和垃圾回收机制 4.闭包在jquery中的应用 概述 ...
阅读 2350·2021-11-24 10:31
阅读 3401·2021-11-23 09:51
阅读 2215·2021-11-15 18:11
阅读 2350·2021-09-02 15:15
阅读 2430·2019-08-29 17:02
阅读 2248·2019-08-29 15:04
阅读 813·2019-08-29 12:27
阅读 2828·2019-08-28 18:15