前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >立即执行函数

立即执行函数

作者头像
wade
发布2020-04-24 11:59:08
1.6K0
发布2020-04-24 11:59:08
举报
文章被收录于专栏:coding个人笔记coding个人笔记

立即执行函数(IIFE),也叫做自执行函数,就是不需要调用就立马执行的函数。

在解释立即函数的时候,我们先了解一下三个函数相关的知识:

函数声明:

代码语言:javascript
复制
function fun() {

}
函数表达式:
var fun = function () {

}
匿名函数:
function() {

}
立即函数有两种常见格式:
(function() {
console.log(999)
}())

(function() {
console.log(999)
})()

这两种格式都能保证函数立马执行,这也是立即函数的基础常见的格式,()运算符加上匿名函数,还有另外几种格式也能立即执行:

代码语言:javascript
复制
!function() {
    console.log(999)
}()
+function() {
    console.log(999)
}()
-function() {
    console.log(999)
}()
=function() {
    console.log(999)
}()
Var fun = function() {
    console.log(999)
}()

运算符!、+、-、=和函数表达式都能打到立即执行。上面的方法,是匿名函数加上运算符,其实把匿名函数都换成函数声明也是一样的,也能变成立即执行函数:

代码语言:javascript
复制
!function fun() {
    console.log(999)
}()

那么我们为什么要使用立即函数呢?我们都知道JavaScript没有块级作用域,只要函数作用域,立即函数最大的用途就是创建一个函数作用域,也就是创建一个私有的空间。

我们都知道jQuery就是一个匿名函数,看源码可以看见jQuery所有内容都包含在匿名函数里面

代码语言:javascript
复制
( function( global, factory ) {
}

创建一个函数作用域是所有JS插件必须要有的功能,以确保各JS插件创建的变量不能和其他JS插件的变量还有引入使用程序的变量发生冲突。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 coding个人笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档