zoukankan      html  css  js  c++  java
  • javascript匿名函数自执行 (function(window,document,undefined){})(window,document);

    使用匿名自执行函数的作用: (function(window,document,undefined){})(window,document);

    1.首先匿名函数 (function(){}) (); 避免函数体内外变量的冲突(js执行表达式顺序为圆括号里到圆括号外);

    2.后面的圆括号中(window,document)的window为实参,接受window对象(window对象是全局环境下的);而function后面的圆括号function(window,document,undefined){}中的window为局部变量,不是全局的window对象。所以这样写可以提高js性能,减少作用域链查询时间.(如果在函数体内多次使用到window对象。把window对象当成实参传进去,是十分必要的;如果函数内部不需要,那么就无需传递该参数.);

    3.function后面的形参undefined又有什么用呢?其实在一些老的浏览器中,undefined不被支持,直接使用会导致错误,所以考虑兼容性,就增加一个形参undefined;

    4.(function() {})()主要用于存放开发插件的代码,执行其中的代码时DOM不一定存在,所以直接自动执行DOM操作的代码,请放心使用;

     

     简化成()(); 表示匿名函数自执行

    (function(window,document,undefined) {  
        //do something  
        console.log("我是匿名函数,会自己执行奥!");  
    })(window,document); 
    

      

    // (function(){})()------------->匿名函数 没有赋值给任何变量 无法随时调用,在定义完成后就会立刻调用 
    // (事件处理程序,创建闭包,创建函数)
    //作用:---------->主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环境,增加代码的兼容性。
    (function() {
        //匿名函数可以访问外部的变量,而外部环境不能访问匿名函数内的变量,所以匿名函数定义的变量不会和外部的变量发生冲突,又叫匿名包裹器,具有保护匿名函数内部变量的作用
                var cookie = document.cookie;
                if(cookie.length != 0) {
                    cookie.log('已经登录,不用再显示登录按钮');
                }
    })();//后面这个()是运行这个匿名函数的意思

    总结:待完善,望补充,不是很理解

    每天进步一点点
  • 相关阅读:
    Monkey面试整理
    Monkey测试环境搭建
    软件测试之Monkey 初步了解(入门级)
    接口测试Post和Get区别(面试题)
    软件测试测试人员遇到的问题及解决方法(面试)
    接口测试用例的基本测试点
    兼容性测试主要测的浏览器
    【转】Web测试中定位bug方法
    使用Postman做接口测试
    head中的title显示在body中
  • 原文地址:https://www.cnblogs.com/677a/p/11726510.html
Copyright © 2011-2022 走看看