• 分析(function(window, undefined) {})(window)


    有的时候,我们会在JS框架中看到这行

    (function(window, undefined) {})(window) ,它是做什么用的,我们来分析下它

    首先这就是一个匿名函数,立即执行它

    (function(window, undefined) {
        // coding
    })(window)

    为这么要这样写,有什么作用

    对js进行压缩的时候

    均可以替换成其他简写字符,从而减少文件大小,因为他们被视为局部变量使用。

    (function(w, u) {
        // coding
    })(w)

    window: 表示 BOM 浏览器对象模型中的 window 对象

    undefined:对于undefined,因为他不是javascript关键字,容易遭到污染。

    举个例子

    function foo() {
         var undefined = 10;
         alert(undefined);
    }
    foo(); // 打印10

    再举个例子:

     var undefined = 10;
        function foo() {
           alert(undefined);
        }
     foo(); // undefined

    为什么又变成undefined了呢 ^(0_0)^

    再来一个

     var undefined = 10;
        function foo() {
           alert(window.undefined);
           alert(undefined);
        }
     foo(); // undefined

    window.undefined和undefined·为什么要变成了undefined了呢?<-_<-

    undefined是window的一个属性,是不可写的,所以你在全局作用域改变window这个属性,根本写不进.

    var fun = function (){
        var undefined = 2;
        console.log(undefined); //2
    }
    var undefined = 1;
    console.log(undefined); //undefined fun();

    这样就能看的比较直观的了解undefined了

    当然从随着浏览器的不断升级,浏览器API不断改变从 jquery2.0.3 2013-07-03 13:30 这一版之后,可以发现不再使用

    (function(window, undefined) {})(window)

    经过3个测试beta版

    逐渐改成了

    (function( global, factory ) {

    }(this,function(window){}));

    这边(this,function(window){})

    但有可能导致一个问题,通过this,window可能没有被定义

    所以让typeof 一下window。

    (typeof window !== "undefined" ? window : this, function( window, noGlobal );

     

  • 相关阅读:
    SVN 怎么让文件脱离 版本控制
    WEB开发中使用和理解 .net中的认证与授权
    三层,师姐把我点透了
    三层与养猪,加入自己的理解。
    Asp.net的登录验证方法Web.config访问权限配置
    <%=%> 引发的aspx文件、.aspx.cs文件和.aspx.designer.cs的一些说明
    bin。obj Properties文件夹
    JS得到对应字段 的值。遍历
    C#中页面传值的方法。转载
    $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • 原文地址:https://www.cnblogs.com/youku/p/9390078.html
Copyright © 2020-2023  润新知