(转)扫盲--javascript的立即执行函数

sai      2022-02-17     596

关键词:

看过jQuery源码的人应该知道,jQuery开篇用的就是立即执行函数。立即执行函数常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),开发者们想到的解决办法就是使用立即执行函数。

1.什么是立即执行函数(IIFE)

在了解立即执行函数之前先明确一下函数声明、函数表达式及匿名函数的形式,如下图:

技术分享图片

接下来看立即执行函数的两种常见形式:( function(){…} )()和( function (){…} () ),一个是一个匿名函数包裹在一个括号运算符中,后面再跟一个小括号,另一个是一个匿名函数后面跟一个小括号,然后整个包裹在一个括号运算符中,这两种写法是等价的。要想立即执行函数能做到立即执行,要注意两点,一是函数体后面要有小括号(),二是函数体必须是函数表达式而不能是函数声明。先看下图:

技术分享图片

从图中可以看出,除了使用()运算符之外,!,+,-,=等运算符都能起到立即执行的作用。这些运算符的作用就是将匿名函数或函数声明转换为函数表达式,如下图所示,函数体是函数声明的形式,使用运算符将其转换为函数表达式之后就可达到立即执行效果:

技术分享图片

2.使用立即执行函数的好处

通过定义一个匿名函数,创建了一个新的函数作用域,相当于创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏污染全局的命名空间。此时若是想访问全局对象,将全局对象以参数形式传进去即可,如jQuery代码结构:

技术分享图片

其中window即是全局对象。作用域隔离非常重要,是一个JS框架必须支持的功能,jQuery被应用在成千上万的JavaScript程序中,必须确保jQuery创建的变量不能和导入他的程序所使用的变量发生冲突。

javascript自动执行函数(立即调用函数)

开头:各种原因总结一下javascript中的自动执行函数(立即调用函数)的一些方法,正文如下  在Javascript中,任何function在执行的时候都会创建一个执行上下文,因为function声明变量和function有可能只在该function内部,这个... 查看详情

javascript--立即执行函数

  当函数被包含在一堆括号()内部就称为了一个表达式,通过在末尾上加上另一个()可以立即执行这个函数,这样的表达式就叫做立即执行函数表达式(ImmediatelyInvokedFunctionExpression,简称IIFE),如:(function(){...})()或者(function(){...}... 查看详情

深入理解javascript中的立即执行函数(function(){…})()

这篇文章主要介绍了深入理解javascript中的立即执行函数,立即执行函数也叫立即调用函数,通常它的写法是用(function(){…})()包住业务代码,使用jquery时比较常见,需要的朋友可以参考下http://www.jb51.net/article/50967.htm javascript和其他... 查看详情

Javascript - 存储为变量时立即执行的函数?

】Javascript-存储为变量时立即执行的函数?【英文标题】:Javascript-FunctionBeingExecutedImmediatelywhenStoredasVariable?【发布时间】:2015-09-2507:03:33【问题描述】:第一次发帖。编程新手。在Javascript中,当我声明一个新变量并将这个新声... 查看详情

js立即执行函数

javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解。(function(){…})()和(function(){…}())是两种javascript立即执行... 查看详情

javascript闭包立即执行函数(代码片段)

JavaScript闭包文章目录JavaScript闭包一、为什么要闭包二、让某些变量得以常驻内存1.原理2.Why立即执行函数?三、让外部得以访问函数内变量四、立即执行函数总结#前言-什么是闭包函数闭包函数是声明在另一个函数内的函数,是被... 查看详情

javascript中的立即执行函数(代码片段)

javascript中的立即执行函数$(function()  alert();())Highcharts的中的series:[  name:‘今日在线人数‘,  color:‘pink‘,  data:(function()    )())]#执行效果一样$(document).ready(function()console.log("ready!"););和$(function( 查看详情

javascript权威指南--立即执行函数

千万不要停下追逐梦想的脚步(function(){//executethismethodimmediatly.//content...}());  查看详情

深入理解javascript中的立即执行函数(function()…)()(代码片段)

javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解。(function()…)()和(function()…())是两种javascript立即... 查看详情

javascript立即执行函数

在项目中看到这么一段代码!function(){//dosomething}();之前知道一点立即执行的概念,但是看见感叹号!(非)就有点懵了,这是要干啥。继续往下看。 待续   参考地址:https://segmentfault.com/a/1190000003985390https://segmentfau... 查看详情

javascript立即执行函数学习

1.新建对象,方法内变量作用域理解错误varmd1={count:0,add:function(){count++;},sub:function(){count--;},show:function(){console.log(count);}};md1.add();md1.add();md1.show();在不加this的情况之下,会试图与当前对象的作用域内寻找count。如果硬要这样写,就... 查看详情

javascript闭包和立即执行函数的作用

一、闭包——closure  先看一个闭包的例子。我们想实现一个计数器,最简单的方法就是定义一个全局变量,计数的时候将其加1。但是全局变量有风险,哪里都有可能不小心改掉它。那局部变量呢,它只在函数内部有效,函数... 查看详情

javascript立即执行函数表达式(iife)

...e*/})();Q:为什么这样写,函数就嗯那个立即执行?A:因为在javascript里,括号内部不能包含语句,当解析器对代码进行解释的时候,先碰到了(),然后碰到function关键字就会自动将()里面的代码识别为函数表达式而不是函数声明。eg:... 查看详情

javascript初阶--------函数闭包立即执行函数

 函数     有时候我们的代码重复了很多次,编程里面称为耦合,但是编程要讲究高内聚,弱耦合。为了将重复多的聚在一起就出现了函数。定义    函数基本要素:函数声明(function),函数名称,参数(形参,实... 查看详情

javascript中的立即执行函数(代码片段)

通常我们声明一个函数有以下几种方式://声明函数f1functionf1()console.log("f1");//通过()来调用此函数f1();//一个匿名函数的函数表达式,被赋值给变量f2:varf2=function()console.log("f2");//通过()来调用此函数f2();//一个... 查看详情

javascript函数声明,函数表达式,匿名函数的区别,深入理解立即执行函数(function(){…})()

functionfnName(){xxxx};//函数声明:使用function关键字声明一个函数,在指定一个函数名。//例如:(正常,因为提升了函数声明,函数调用可以在函数声明之前)fnName();functionfnName(){alert(‘HelloWorld‘);}varfnName=function(){xxxx};//函数表达式:... 查看详情

javascript要点(上)

立即执行函数即ImmediatelyInvokedFunctionExpression(IIFE),正如它的名字,就是创建函数的同时立即执行。它没有绑定任何事件,也无需等待任何异步操作:(function(){console.log("js")})()function(){…}是一个匿名函数,包围它的一对括号将其转... 查看详情

理解javascript的立即调用函数表达式(iife)

首先这是js的一种函数调用写法,叫立即执行函数表达式(IIFE,即immediately-invokedfunctionexpression)。顾名思义IIFE可以让你的函数立即得到执行(废话)。一般来说,IIFE有以下几种用途:  1.创建只使用一次的函数,并立即执行它。 ... 查看详情