为什么代码要写到匿名自执行函数中?

1. 为啥让你把代码写到匿名自执行函数中

// 目的是为了防止变量命名空间污染

// 1. 防止污染别的变量

// 2. 防止被别人污染

// 3. 表明这是一个独立的模块 // 原理:函数有作用域

2. 为什么把 window 传递到了匿名自执行函数中

// 1. 声明当前js文件模块的依赖项

// 2. 减少作用域查找范围,提高代码执行效率 ;(function (w, d, Vue, $) { // code here })(window, document, Vue, jquery)

原文地址:https://www.cnblogs.com/md-lw/p/8734299.html

时间: 2024-08-27 00:03:27

为什么代码要写到匿名自执行函数中?的相关文章

匿名自执行函数

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function alt(s) { document.write(s); } function show(){ alert(chao.myfunc()

addEventListener和attachEvent二者绑定的执行函数中的this不相同【转载】

yuanwen http://www.jb51.net/article/32511.htm 写 addEventListener 和 attachEvent 区别的博文不少,不过大部分都把重点放置于前者是Firefox chrome,后者只是存在于IE系列中 写 addEventListener 和 attachEvent 区别的博文不少,不过大部分都把重点放置于前者是Firefox chrome,后者只是存在于IE系列中. 最近在写一个事件代理的时候,遇到一个BUG,发现除此外,二者绑定的执行

三. var let const的理解 以及 立即执行函数中的使用 以及 for循环中的例子

一. 立即执行函数 windows中有个name属性,name='' '' var 如果我们用var name 去声明,那就会改变windows中name的值(因为我们不是在函数作用域中声明的,所以会覆盖全局的值) 为了避免这种问题,通常我们写一个立即执行函数(可读性不高) const 同样,如果我们用const去声明,也会改变全局的name属性 我们把const声明写在大括号里面,就不会改变全局的name属性了 二. for循环 常见的for循环,console.log(i) 会输出10,wh

setTimeout中所执行函数中的this,永远指向window

注意是要延迟执行的函数中的this哦!! //片段一 setTimeout("alert(this)", 1); // [object Window] //片段二 var obj = { say: function() { setTimeout("alert('in obj ' + this)", 0) } } obj.say(); //片段三 var obj = { say: function() { setTimeout(function(){alert(thi

匿名自执行函数报错

js 报错(intermediate value)(...) is not a function 2017-02-18 17:49 1497人阅读 评论(0) 收藏 举报 [javascript] view plain copy //通过函数构造器定义 function beverage_treat(){ } // 这里不用加分号 //通过函数表达式定义, 此时我们认为该函数是一个变量 var beverage_treat = function(){ }; // 这里一定要加分号,不然在后面紧跟

学习js即时执行函数中的this关键字详解

this是Javascript语言的一个关键字. 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.比如, function test(){ this.x = 1; } 随着函数使用场合的不同,this的值会发生变化.但是有一个总的原则,那就是this指的是,调用函数的那个对象. 下面分四种情况,详细讨论this的用法. 情况一:纯粹的函数调用 这是函数的最通常用法,属于全局性调用,因此this就代表全局对象Global. 请看下面这段代码,它的运行结果是1. function te

创建自执行函数表达式

首先贴一段这样的代码 //正确的代码var foo=function(){ //函数内容 }; foo(); 对于这段代码大家都很熟悉,创建一个函数表达式并且立即执行.接下来,我们试着去把这段代码简化,变成一个立即执行函数表达式. //错误的代码function(){ //函数内容 }() 这段代码与上面代码的区别就是把foo省略了,直接替换成function,但是很明显这样做是不行的,js会给我们报出一个错误. 为什么这样会报错呢?其实原因很简单,函数声明以function关键字开始,同时函数

JS中的自执行函数

本来规划的是2013年,狠狠的将JS学习下,谁知计划赶不上变化,计划泡汤了.13年的我对JS来说可以说是属于跟风,对它的理解和认识也仅仅是皮毛而已,也是因为要完成<ArcGIS API for JavaScipt开发教程>而临阵磨枪. 在接触JS一段时间后,觉得还是比较灵活的,灵活的前提是要更深入的了解,就像两个陌生的人,相处的时间长了,了解的时间长了,难免会产生感情一样.对于JS也开始产生了感情,这种感情体现在工作中,体现在周围的环境中. 目前很多开发者纷纷加入JS的阵营,看来这已经不是跟风

前端面试之立即执行函数

什么是立即执行函数 声明一个函数,并马上调用这个匿名函数就叫做立即执行函数.在定义好一个函数后,直接执行. (function() {alert('立即执行函数')})() 用声明一个函数,用括号包起来,调用此函数. 立即执行函数的写法 有时候,我们定义函数以后,立即调用该函数,这时不能在函数的定义后面直接加圆括号,这会产生语法错误.产生语法错误的原因是,function这个关键字,既可以当做语句,也可以当做表达式. //语句 function fn() {}; //表达式 var fn = f