function (window, $, undefined) {
play=function(){
$("#demo").val("This is a demo.");
}
window.wbLogin = play;
})(window, jQuery);
像上边这样的代码为什么要把window, jQuery对象传进去?

为什么要传入 jQuery?
通过定义一个匿名函数,创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏全局的命名空间。这点非常有用也是一个 JS 框架必须支持的功能,jQuery 被应用在成千上万的 JavaScript 程序中,必须确保 jQuery 创建的变量不能和导入他的程序所使用的变量发生冲突。
为什么要传入 window?
通过传入 window 变量,使得 window 由全局变量变为局部变量,当在 jQuery 代码块中访问 window 时,不需要将作用域链回退到顶层作用域,这样可以更快的访问 window;这还不是关键所在,更重要的是,将 window 作为参数传入,可以在压缩代码时进行优化,看看 jquery-1.6.1.min.js:
(function(a,b){})(window); // window 被优化为 a
为什么要传入 undefined?
在自调用匿名函数的作用域内,确保 undefined 是真的未定义。因为 undefined 能够被重写,赋予新的值。
一句话,使全局变量以参数形式变成自执行函数内部的局部变量。
至于为什么这么做,提高程序效率。为什么能提高效率,得从javascript的机制说起,所谓的scope chain作用域链,在当前作用域中如果没有该属性(局部变量)则向上一层作用域中寻找,一直到最上层,也就是window。也就是说全局变量和下级作用域都是window的一个属性,向下依此类推。
另外jQuery传入后将参数写成$可以保证在此函数内$为jquery而不是其他类似使用$符号的库。
undefined同理,由于没有传入第三个参数,自然就是undefined。由于javascript中undefined是一个变量,可以被改变,所以这样可以保证undefined判断时的准确性。有时判断时使用typeof xxx === 'undefined'也是因为这个原因。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# javascript
# 自执行函数
# 浅析Javascript匿名函数与自执行函数
# js自执行函数的几种不同写法的比较
# javascript中运用闭包和自执行函数解决大量的全局变量问题
# javascript自执行函数之伪命名空间封装法
# 全局变量
# 的是
# 都是
# 是一个
# 在此
# 依此类推
# 要把
# 如果没有
# 更重要
# 重写
# 更快
# 要将
# 这么做
# 不需
# 后将
# 句话
# 第三个
# 用在
# 这还
# 退到
相关文章:
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
如何在云指建站中生成FTP站点?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
中山网站制作网页,中山新生登记系统登记流程?
建站之星如何通过成品分离优化网站效率?
如何快速建站并高效导出源代码?
如何快速打造个性化非模板自助建站?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
香港服务器WordPress建站指南:SEO优化与高效部署策略
小建面朝正北,A点实际方位是否存在偏差?
教程网站设计制作软件,怎么创建自己的一个网站?
如何确保西部建站助手FTP传输的安全性?
在线教育网站制作平台,山西立德教育官网?
广平建站公司哪家专业可靠?如何选择?
如何通过免费商城建站系统源码自定义网站主题与功能?
建站之星安装失败:服务器环境不兼容?
如何用IIS7快速搭建并优化网站站点?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
电商网站制作价格怎么算,网上拍卖流程以及规则?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
开心动漫网站制作软件下载,十分开心动画为何停播?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
大连 网站制作,大连天途有线官网?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何续费美橙建站之星域名及服务?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
c# 服务器GC和工作站GC的区别和设置
建站主机选哪种环境更利于SEO优化?
如何在IIS7中新建站点?详细步骤解析
广州营销型建站服务商推荐:技术优势与SEO优化解析
济南网站制作的价格,历城一职专官方网站?
,交易猫的商品怎么发布到网站上去?
定制建站价位费用解析与套餐推荐全攻略
深圳网站制作案例,网页的相关名词有哪些?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
建站之星导航配置指南:自助建站与SEO优化全解析
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
如何选购建站域名与空间?自助平台全解析
营销式网站制作方案,销售哪个网站招聘效果最好?
怎么将XML数据可视化 D3.js加载XML
如何通过宝塔面板实现本地网站访问?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
,如何利用word制作宣传手册?
*请认真填写需求信息,我们会在24小时内与您取得联系。