zoukankan      html  css  js  c++  java
  • javascript中运用闭包和自执行函数解决大量的全局变量问题

    做为一个javascript新手,为了程式的简便,可能会在javascript中运用了大量的全局变量,虽然一时看来,问题解决了,而且也可能让编码变得更加的简单。但是从全局看来,这样会导致出现一些让我们难以掌控的情况的出现:变量同名、多个函数共用一个全局变量后的值的变换……等等。所以,有时候,对于一些简单的全局变量,我们可以通过另一种方式来处理——用自执行函数+闭包的方法来解:

    比如:我们要在网页加载时给出一个提示,在网页关闭时给出另一个提示

    下面的代码,实现了以上功能

    var msg1 = "欢迎光临!";   // 定义一个全局变量

    var msg2 = "再见!" //定了另一个全局变量

    window.onload = function() {

      alert(msg1);

    }

    window.onunload = function() {

      alert(msg2);

    }

    这段代码中已经用到了两个全局变量。而只是为了实现一个简小的功能。

    而且,全局变量太多,我们必须记住:msg1是欢迎时的变量,msg2是关闭时变量……如果变量更多,我们还能记得住吗?

    下面是同样的功能,不过运用了自执行函数+闭包方法:

    (function() {

      var msg = "Hello, world!";

      window.onload = function() {

        alert(msg);

      }

    })();

    (function() {

      var msg = "Hello, world!";

      window.onunload = function() {

        alert(msg);

      }

    })();

    后者做法,虽然代码增长了,但是:

    1)msg变量只在各自的自执行函数内有效。不会和其它全局变量之间产生混淆。

    2)代码的结构变得更加的清晰。

    3)解决了大量使用全局变量的情况。

    以上只是本人的一点认识,希望真正的高手给出点评!

    转载请注明:转载自web前端开发

  • 相关阅读:
    三数之和
    盛最多水的容器
    正则表达式匹配
    最长回文子串
    寻找两个有序数组的中位数
    2、二维数组中的查找
    1、找出数组中重复的数字
    mongodb的下载地址
    提取快捷方式的图标资源问题
    一条数据引发的问题
  • 原文地址:https://www.cnblogs.com/langzs/p/1921682.html
Copyright © 2011-2022 走看看