资讯专栏INFORMATION COLUMN

IIFE立即执行函数

wuyangnju / 2080人阅读

区别function
Iife最左边为(。编译器认为是iife,不是函数。

IIFE的目的是为了隔离作用域,防止污染全局命名空间

弥补scope的缺陷 用于隔离作用域
全局作用域 块级作用域 函数作用域
只有function才能实现作用域隔离,因此如果要将一段代码中的变量、函数等的定义隔离出来,只能将这段代码封装到一个函数中。

将代码封装到函数中的目的是为了复用。在JS中,当然声明函数的目的在大多数情况下也是为了复用,但是JS迫于作用域控制手段的贫乏,我们也经常看到只使用一次的函数:这通常的目的是为了隔离作用域了!既然只使用一次,那么立即执行好了!

IIFE构造单例模式

JS的模块就是函数,最常见的模块定义如下:
functionmyModule(){
varsomeThing="123";
varotherThing=[1,2,3];

functiondoSomeThing(){

console.log(someThing);

}

functiondoOtherThing(){

console.log(otherThing);

}

return{

doSomeThing:doSomeThing,
doOtherThing:doOtherThing

}
}

varfoo=myModule();
foo.doSomeThing();
foo.doOtherThing();

varfoo1=myModule();
foo1.doSomeThing();
如果需要一个单例模式的模块,那么可以利用IIFE:
var myModule=(functionmodule(){
varsomeThing="123";
varotherThing=[1,2,3];

functiondoSomeThing(){

console.log(someThing);

}

functiondoOtherThing(){

console.log(otherThing);

}

return{

doSomeThing:doSomeThing,
doOtherThing:doOtherThing

}
})();

myModule.doSomeThing();

myModule.doOtherThing()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/110286.html

相关文章

  • JavaScript-立即调用函数表达式(IIFE

    摘要:将匿名函数赋予一个变量,叫函数表达式,这是最常见的函数表达式语法形式。组成这是一个被称为自执行匿名函数的设计模式,主要包含两部分。 一、函数声明&函数表达式 1.1 函数声明 (函数语句) showImg(https://segmentfault.com/img/bVbbqvT?w=278&h=166); (1)使用 function 关键字声明一个函数,再指定一个函数名,叫函数声明。...

    XUI 评论0 收藏0
  • IIFE 疑惑解析

    摘要:问题解答定义了一个名为的立即执行函数表达式我们来看这一段代码,这里面包含着一个名为的具名函数表达式。 IIFE 是什么呢? IIFE 是 Immediately-Invoked Function Expression 的英文缩写,也就是立即执行函数表达式。 下面是一个 IIFE 代码实例: (function(){ console.log( Hello! ); ...

    Warren 评论0 收藏0
  • Javascript知识点:IIFE - 立即调用函数

    摘要:所以那些匿名函数附近使用括号或一些一元运算符的惯用法,就是来引导解析器,指明运算符附近是一个表达式。 Immediately-invoked Function Expression(IIFE,立即调用函数),简单的理解就是定义完成函数之后立即执行。因此有时候也会被称为自执行的匿名函数(self-executing anonymous function)。 IIFE的叫法最早见于Ben...

    goji 评论0 收藏0
  • IIFE立即执行函数

    区别functionIife最左边为(。编译器认为是iife,不是函数。 IIFE的目的是为了隔离作用域,防止污染全局命名空间 弥补scope的缺陷 用于隔离作用域全局作用域 块级作用域 函数作用域只有function才能实现作用域隔离,因此如果要将一段代码中的变量、函数等的定义隔离出来,只能将这段代码封装到一个函数中。 将代码封装到函数中的目的是为了复用。在JS中,当然声明函数的目的在大多数情况...

    Dogee 评论0 收藏0
  • 立即执行函数表达式(IIFE)

    摘要:另外,如果你想跳过这里,你可以直接跳到立即调用函数表达式进行阅读,但是我建议你读完整篇文章。当圆括号包裹函数时,它会默认将函数作为表达式去解析,而不是函数声明。 原文:Immediately-Invoked Function Expression (IIFE) by Ben Alman原译:立即执行函数 by Murphywuwu改增内容: by blanu 也许你没有注意到,我是一个...

    Yu_Huang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<