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

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

javascript匿名函数自执行 (function(window,document,undefined){})(window,document);的更多相关文章

  1. javascript高逼格代码实现数组去重,JSON深度拷贝,匿名函数自执行,数字取整等

    1.如何装逼用代码骂别人傻逼 (!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]] 2.如何优雅的用代 ...

  2. 体验javascript之美第五课 五分钟彻底明白 匿名函数自执行和闭包

    通过文你将学到: 1.闭包是怎么回事儿? 2.闭包的原理和在jquery中的应用 3.从一到面试题彻底理解闭包和垃圾回收机制 4.闭包在jquery中的应用 概述 经常听到闭包这个词儿,或者匿名函数自 ...

  3. Javascript 函数声明、函数表达式与匿名函数自执行表达式

    函数表达式(Function Expression)注:将函数定义为表达式语句(通常是变量赋值)的一部分 //func() 错误 var func = function () { } //func() ...

  4. 第一百一十节,JavaScript匿名函数和闭包

    JavaScript匿名函数和闭包 学习要点: 1.匿名函数 2.闭包 匿名函数就是没有名字的函数,闭包是可访问一个函数作用域里变量的函数.声明:本节内容需要有面向对象和少量设计模式基础,否则无法听懂 ...

  5. 浅谈JavaScript匿名函数与闭包

    一. 匿名函数   //普通函数定义: //单独的匿名函数是无法运行的.就算运行了,也无法调用,因为没有名称. 如: function(){             alert('123');    ...

  6. (转)Javascript匿名函数的写法、传参、递归

    (原)http://www.veryhuo.com/a/view/37529.html (转)javascript匿名函数的写法.传参和递归 javascript匿名函数的写法.传参和递归 http: ...

  7. (转)javascript匿名函数的写法、传参和递归

    (原)http://www.veryhuo.com/a/view/37529.html (转)javascript匿名函数的写法.传参和递归 http://www.veryhuo.com 2011-0 ...

  8. JS匿名函数自执行函数

    JS匿名函数自执行函数:(function(){})();(function(){}) 这是一个函数,函数后面接(),则是调用函数 比如(function(arg){console.log(arg); ...

  9. (译)(function (window, document, undefined) {})(window, document); 真正的意思

    由于非常感兴趣, 我查询了很多关于IIFE (immediately-invoked function expression)的东西, 如下: (function (window, document, ...

随机推荐

  1. 使用singer 转换gitbase 数据到postgresql

    gitbase 是mysql server 的一个实现(主要是用来分析git仓库代码),但是里面好多功能可能并不是很强大(sql 的限制) 我们可以通过singer 的tap-mysql 将数据抽取到 ...

  2. HTML相对路径和绝对路径

     一.相对路径 相对路径不带有盘符,通常是以HTML网页文件为起点,通过层级关系描述目标图像的位置. 相对于文件自身出发,就是相对路径. 主要有以下几种情况:   ①文件和图片(html文档)在同一个 ...

  3. Debian 9 安装 libsodium

    到这里查看最新的版本号.如现在最新的版本号为1.0.18.下面均以该版本为例. 下载.编译和安装: wget https://download.libsodium.org/libsodium/rele ...

  4. 【洛谷P5049】旅行(数据加强版)

    题目链接 m=n-1是直接按字典序dfs就行, m=n时是一棵基环树,我们发现当一个点在环上时,可以把它和它的一个在环上的儿子之间的边删掉,然后回溯,到达它的第一个有其他儿子的祖先的另一个儿子上,我们 ...

  5. BJOI做题记录

    BJOI做题记录 终于想起还要做一下历年省选题了2333 然而咕了的还是比做了的多2333 LOJ #2178. 「BJOI2017」机动训练 咕了. LOJ #2179. 「BJOI2017」树的难 ...

  6. 区间DP训练

    一.石子合并 问题描述 将 n (\(1 \le n \le 200\))堆石子绕圆形操场摆放,现要将石子有次序地合并成一堆.规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数,记为该次合并 ...

  7. python下浏览器静默运行驱动

    此处以chromdriver为例,放置driver路径问题参看上一篇问题.和java处理差不多,python实现静默运行方式如下 首先解答为什么进行静默运行? 我们在本地一般便于调试可以用GUI界面运 ...

  8. 开机启动类似于Tencent Upd的弹窗解决方法

    1.开机启动的程序,后台启动自动升级的exe,每次开机都弹出弹窗,一不小心就点错了,神烦. 解决方式:直接在windows系统  [ 本地安全策略>软件限制策略>其他规则 ] 里面把弹出的 ...

  9. Git bash Error: Could not fork child process: There are no available terminals (-1)

    错误信息:Error: Could not fork child process: There are no available terminals (-1) 截图如下: 解决办法: (1)使用cmd ...

  10. 【Django】Django项目结构与单元测试

    学校的软工项目要开发一个网站,自然的想到用python+Django来做.由于之前没有用Django开发过大型的网站项目,所以遇到了一些问题.记录在此,便于以后查阅. 今天完成了项目结构的设计.部分的 ...