美文网首页
立即执行函数和闭包的使用

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

作者: 祈念念念 | 来源:发表于2019-01-03 13:43 被阅读0次

title: 立即执行函数和闭包的使用
date: 2018-10-11 20:34:17
tags: [JavaScript]
categories: JavaScript


立即执行函数的作用和使用

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

(function(){}).call() //不推荐,原因如下

xxx    
(function(){}).call() //报错

allen12415145141556.call() //用随机数,不推荐

立即执行函数的好处

  1. 函数不必再另外命名,避免了污染全局,不会在复杂页面协作中造成错乱;

  2. 实现一个作用域隔离,封装外部无法读取的私有变量

  3. 避免命名冲突,符合js语法规则,并立刻执行。

结合闭包的使用

  1. 立即执行函数使得 变量person 无法被外部访问
  2. 闭包使得匿名函数可以操作 变量person
  3. window.GrowUp 保存了匿名函数的地址
  4. 任何地方都可以使用 window.GrowUp
    => 任何地方都可以使用 window.GrowUp 操作 person,但是不能直接访问 person
!function(){
    var person = xxx
    window.GrowUp(){
        xxxxx
    }
}.call()

相关文章

  • 闭包_定时器

    闭包的作用是:暴露局部函数立即执行函数 ==> 闭包 下面的代码输出多少?修改代码让 fnArri 输出 i。使用...

  • es5核心技术

    立即执行函数 函数提升和变量提升 闭包 this 原型链实现继承

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

    title: 立即执行函数和闭包的使用date: 2018-10-11 20:34:17tags: [JavaSc...

  • JavaScript闭包(三)

    目录 1.执行环境与作用域链 2. 立即执行函数 3. 闭包知识点 3.1 什么是闭包 3.2 使用闭包的意义与注...

  • 立即执行函数和闭包

    立即执行函数: 一、计时器 一次性定时器 setTimeOut(function(){ //1秒后执行 },100...

  • 闭包和立即执行函数

    闭包:先来看一个题目:实现一个函数,每次调用自增1 你有可能会想用全局变量,计数的时候将它加一,但是全局变量有风险...

  • 闭包和立即执行函数

    闭包闭包:内部的函数引用了外部的函数的变量,则产生闭包。闭包的作用:把变量封装在函数中,只有内部函数可以用,让函数...

  • 理解闭包

    什么是「闭包」。 「闭包」的作用是什么。在一个立即执行函数当中: 首先,假设以上几行代码运行在立即执行函数当中,那...

  • 进阶11-闭包_定时器_BOM

    1. 使用立即执行函数生成闭包,利用其内部函数读取该函数局部作用域3种方式生成闭包 2.输出汽车参数的函数 3.s...

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

    立即执行函数 我们不想用全局函数 我们要使用局部变量 ES5里只有函数有局部变量 于是我们声明一个function...

网友评论

      本文标题:立即执行函数和闭包的使用

      本文链接:https://www.haomeiwen.com/subject/tiatrqtx.html