立即执行函数表达式与闭包

2019-07-10  本文已影响0人  Grit0821

1立即执行函数函数表达式(IIFE)

  1. 需要return结果
    ( function( ){...} ) () 或者 ( function( ){...}() )
    举例:通过IIFE给变量a赋值
var a = (function() {
  return(12)
})
  1. 不需要return结果
    !function( ){...}( )
    举例:通过立即执行函数改变b的值
var b = 5
!function(){
  b++
}( )

2闭包

2.1什么是闭包

函数函数内部能访问到的变量 的总和就是一个闭包。

!function(){
  val local = 5
  function foo (){
    console.log(local)
  }
}()

local变量foo函数就组成了闭包,立即执行函数是为了创造一个局部作用域,避免外部访问local变量。此例含有闭包但是还无法使用。

function foo(){
  var local = 1
  function bar(){
    local++
    return local
  }
  return bar
}

var func = foo()
func()

local变量bar 函数就组成了闭包,通过foo函数return bar 可以使用闭包(提供一个外部访问的接口,也可以使用window.bar = bar

2.1闭包的作用

上一篇 下一篇

猜你喜欢

热点阅读