zoukankan      html  css  js  c++  java
  • 《JQuery技术内幕》读书笔记——自调用匿名函数剖析

    Javascript语言中的自调用匿名函数格式如下:

    (function(){
    //do somethings
    })();

    它还有另外两种等价写法如下:

    //等价写法一
    (function(){
    //do somthings
    }());
    //等价写法二
    !function(){
    //do somethings
    }();

    JQuery采用的是第一种写法

    (function(window,undefined){
        //...
    })(window);

    自调用匿名函数创建了一个独立的作用域,从而与全局以及其他类库的作用域分开,互相不污染变量。

    一、JQuery将window对象最为参数传入函数域,从而使window对象成为JQuery函数域的局部变量,这样做的好处是:

      1.访问局部变量比访问全局变量的代价花销低很多,JQuery访问局部window对象时,不必通过作用域链调回全局来访问,从而更加快速的访问window对象。这一点在以后开发类库的时候是很好的优化方式;

      2.代码压缩优化。被压缩后的代码如下:

    (function(a,b){})(window);

    二、JQuery的第二个参数是undefined。

    与null不同,undefined并不是一个数据类型,而是一个预定义的全局变量(参照JavaScript权威指南44页),它是可以被修改的(并不是所有浏览器都支持)。JQuery将undefined作为参数传入函数域,一方面是为了代码压缩优化;另一方面是为了防止修改undefined的行为影响JQuery作用域,确保在JQuery作用域内,undefined就是undefined,不是被修改的其他值。

    三、自调用匿名函数的分号不能省略

    在JavaScript中,多行语句是可以省略单行句尾分号的,但是对于自调用匿名函数,不论是其之前的分号还是自身末尾的分号,最好都不要省略,如果省略可能会报错(尤其是在一些旧浏览器中)。

  • 相关阅读:
    数字资产交易所记录
    How to decode input data from a contract transaction without ABI?
    【收藏】ETH以太坊各个环境的公共的RPC服务!!!
    Solidity知识点集 — 溢出和下溢
    docker run 与docker start的区别
    子网掩码计算192.168.1.0/24 24 / 11
    Solidity-让合约地址 接受ETH的转账充值的 三种方式
    echarts的散点图
    debug.js中的length的错误
    26个工具类
  • 原文地址:https://www.cnblogs.com/ihardcoder/p/3915009.html
Copyright © 2011-2022 走看看