zoukankan      html  css  js  c++  java
  • 第三章 Js变量的作用域和匿名函数

    3.1

    先看下面的事例:

    ①var temp=0;

    ②temp=0;

    当js解析器检测到①这种情况的时候,解析器会为这个变量开辟一个内存空间,如果前面已经存在这个变量,就会把这个变量覆盖掉。

    当解析器检测到①这种情况的时候,解析器会寻找当前对象的父级对象有没有这个变量,以此查找,只到找到位置;如果还找不到,就会在windows对象里定义这个变量。

    再看下面例子

    function f() {
          var _temp = 0;
          console.log(_temp);
    }
    f();
    console.log(_temp);
    
    ②function f() {
          _temp = 0;
          console.log(_temp);
    }
    f();
    console.log(_temp);

    大家看可以在文件夹第三章01.htm、02.htm中看到两段代码,大家可以先猜测下执行结果。

    从上面的代码中大家可以总结出
    ⒈我们定义变量的时候如果加上var 就会避免给全局增加不必要的变量,我们定义变量的时候尽量前面加 var
    2.函数内部定义的变量是私有的

    3.2匿名函数

    在上一节大家已经看到了匿名函数。匿名函数是一类特殊的函数,不用调用立即执行,并且在里面的定义的变量不会影响到函数外面。

    这样,匿名函数就有了一个特殊的用途,放置全局污染;Jquery就是一个匿名函数

    (function (z, v) {
       // jquery code
    })(window);
    
    这里等价的写法就是
    
    function myfun(z, v) {
       // jquery code
    });
    
    myfun(window);

    大家对照参考下,就可以明白匿名函数的写法了

  • 相关阅读:
    世界本就很简单-云计算
    世界本就很简单-集群
    Linux虚拟机连接网络
    定时任务删除日志文件
    fiddler篡改请求数据
    Jmeter-线程日志查看
    Jmeter-JDBC Request
    Jmeter-查看结果树
    Jmeter-聚合报告
    Jmeter-参数化
  • 原文地址:https://www.cnblogs.com/blowfish/p/3245215.html
Copyright © 2011-2022 走看看