美文网首页饥人谷技术博客
理解「立即执行函数 」

理解「立即执行函数 」

作者: 饥人谷_牛晋 | 来源:发表于2017-12-20 17:03 被阅读0次

什么是 IIFE

(function(){
  // _...do something...
})();

如上所示,在函数声明的外面加上一对圆括号,并在结尾处再加上一对括号,此函数在声明完成之后,会立刻执行。这种用法就叫做:立即执行函数。
通过使用圆括号包裹我们的函数, 我们告诉解释器以函数表达式的方式解析JavaScript代码 , 而不是函数声明。
该表达式返回一个函数对象:

var f = (function() {
  console.log("hello world!")
})
console.log(typeof f)          // function
console.log(f instanceof Object)  // true

事实上,任何操作一个函数并返回此函数的表达式,均可以生成 立即执行函数 ,以下写法均合法:

-function() {
  console.log("hello world!")
}()

*function() {
  console.log("hello world!")
}()

/function() {
  console.log("hello world!")
}()

&function() {
  console.log("hello world!")
}()

,function() {
  console.log("hello world!")
}()

立即函数有什么作用

我们知道了立即函数的实际行为:创建了一个函数表达式,并立即执行。那么为什么我们需要使用 IIFE ?

私有性

在 JavaScript 中,变量所在的作用域在包含它们的函数中,这意味着不能从函数体的外部访问到这些变量:

(function() {
    var secret = 64
})()
console.log(secret)    //  ReferenceError: secret is not defined

这允许我们在函数私有的变量和数据不被侵扰的情况下使用这些变量和数据。

虽然使用命名函数也可以达到同样的效果,但是 IIFE 不会污染全局命名空间。

相关文章

  • 理解「立即执行函数 」

    什么是 IIFE 如上所示,在函数声明的外面加上一对圆括号,并在结尾处再加上一对括号,此函数在声明完成之后,会立刻...

  • JavaScript立即执行函数(IIFE)

    注:此文只在理解立即执行函数,文章大量引用立即调用的函数表达式,javascript立即执行某个函数:插件中fun...

  • JS基础 -- 立即执行函数

    /** 立即执行函数* 函数定义完,立即被调用,这种函数焦作立即执行函数* 立即执行函数往往只会执行一次** ...

  • 深入理解javascript中的立即执行函数(function(

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

  • JavaScript函数定义&立即执行

    想要理解立即执行函数,首先需要知道一些函数的基本概念,以下整理了函数定义的方法和立即执行函数的方法。 定义函数 在...

  • 立即执行函数

    本文涉及知识点 什么是立即执行函数? 立即执行函数有什么用? 什么是立即执行函数? 立即执行函数就是: 声明一个匿...

  • JS立即执行函数的学习

    格式: 格式一:(function(){})()格式二:(funtion(){}()) 理解:   立即执行函数会...

  • JS重要概念之立即执行函数与闭包高级

    #立即执行函数表达式IIFE,简称“立即执行函数” 立即执行函数表达式,IIFE(immediately-invo...

  • js立即执行函数理解

    通过立即函数可以创建一个独立的作用域。这个作用域中的变量,外面访问不到。比如你参与了一个多人协作一起开发的项目,你...

  • 九 立即执行函数

    立即执行函数除了执行完立即释放,跟普通函数没有区别。 返回值,执行期上下文,预编译等函数有的,立即执行函数都是有的...

网友评论

    本文标题:理解「立即执行函数 」

    本文链接:https://www.haomeiwen.com/subject/buagwxtx.html