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

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

最新文章

  1. 【java开发】ubuntu常用命令及环境搭建
  2. javascript中的闭包、模块与模块加载
  3. Python无类再理解--metaclass,type
  4. Circular Sequence,ACM/ICPC Seoul 2004,UVa 1584
  5. int和integer;Math.round(11.5)和Math.round(-11.5)
  6. mysql 5.7.12 新增 X plugin 详解
  7. 团体程序设计天梯赛-练习集L1-016. 查验身份证
  8. Ubuntu下gcc及g++环境配置
  9. 玩转docker
  10. 使用 rpython 在 windows 下生成的程序无法运行
  11. PHP 支付
  12. SpringBoot学习笔记
  13. webpack学习之路
  14. 未能加载 global.asax的类的解决方案
  15. java基础(三)-----java的三大特性之多态
  16. [转]k8s核心概念
  17. phtyon
  18. Spring AOP动态代理原理与实现方式
  19. Java基础(basis)-----代码块详解
  20. 深度学习课程笔记(六)Error

热门文章

  1. PostGraphile 4.4 发布,支持real time 查询
  2. 1.typescirpt学习之路,*.d.ts和@types关系理解
  3. HTML试题解析
  4. mysql ,limit 的使用
  5. 「SNOI2019」积木
  6. 工作发狂:Mybatis 中$和#千万不要乱用!
  7. maven 发现有一个包 需要升级包版本
  8. Web前端开发规范之图片命名规范
  9. IE安全限制
  10. [转]Windows内存堆内容整理总结