立即执行函数和闭包的使用和应用

立即执行函数

  1. 我们不想用全局函数
  2. 我们要使用局部变量
  3. ES5里只有函数有局部变量
  4. 于是我们声明一个function xxx(){}然后.call()
  5. 这个时候xxx是全局变量(全局函数)
  6. 所以我们不能给这个函数名字
  7. function(){}.call()
  8. 但是chrome会报错,语法错误
  9. 试出一种方法可以不报错
    1. !function(){}.call()(我们不在乎这个匿名函数的返回值,所以加个!取反没关系)

闭包和立即执行函数的联合使用

  1. 立即执行函数使得person无法被外部访问
  2. 闭包使得匿名函数可以操作person
  3. window.frankGrowUp 保存了匿名函数的地址
  4. 任何地方都可以使用window.frankGrowUp

推论:任何地方都可以使用window.frankGrowUp操作person,但是不能直接访问person

闭包
函数

你可能感兴趣的:(立即执行函数和闭包的使用和应用)