JS中立即执行函数

立即执行函数(IIFE)

for(var i=0 ;i<10 ; i++){

                (function fn(){
                console.log(i);
            })(i)

            }
  • 立即执行函数函数名与体是一个整体,定义之后立即执行,只会调用一次

  • 此处函数名也可以没有,为匿名函数

  • function fn(){ } //函数声明
    以上是声明部分,在后面直接加()是不能执行的,需要先转换成表达式,常用方法是用()将声明括起来。
    (function fn(){ })()
    相当于:
    var f = function fn(){ } //函数表达式
    fn();

    即把函数当作解析式解析,然后执行解析后的函数

  • 也可以写成

    ( function fn(){ }() ) //函数表达式

    是把函数表达式和执行当作语句直接执行,
    相当于 var a = function(){}(); a得到的是结果

  • 立即执行函数的作用

    IIFE建立一个新的函数执行域,将要执行的代码封装在其中,所以不会污染全局作用域。
    如果该函数需要一个全局变量,则可以pass 给 IIFE

    (function iF(global){
    //以函数形式调用时,this是 window对象,此处变量为全局变量
    }(this)

  • 函数表达式与函数声明

    Js引擎在解析js代码时会“函数声明提升”当前的作用域上的函数声明,通俗点讲就是首先加载所有的函数声明,所以可以 将函数的调用写在声明之前。

    函数表达式后加括号可以立即执行。
    函数声明不可以,只能以fnName() 形式调用。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值