立即执行函数

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

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

函数声明:

function fun() {

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

} 匿名函数: function() {

}

立即函数有两种常见格式:

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

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

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

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

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

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

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

Var fun = function() { console.log(999) }()

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

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

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

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

( function( global, factory ) {

}

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

欢迎关注Coding个人笔记 公众号

转载于:https://juejin.im/post/5c4ad82cf265da613356eaed

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值