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('已经登录,不用再显示登录按钮');
                }
    })();//后面这个()是运行这个匿名函数的意思

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

    每天进步一点点
  • 相关阅读:
    基本MVVM 和 ICommand用法举例(转)
    WPF C# 命令的运行机制
    628. Maximum Product of Three Numbers
    605. Can Place Flowers
    581. Shortest Unsorted Continuous Subarray
    152. Maximum Product Subarray
    216. Combination Sum III
    448. Find All Numbers Disappeared in an Array
    268. Missing Number
    414. Third Maximum Number
  • 原文地址:https://www.cnblogs.com/677a/p/11726510.html
Copyright © 2011-2022 走看看