javascript中(function{})()写法解析
javascript中(function{})()写法解析
javascript 中(function{})()这种写法什么意思?
最近在整理javascript 学习,发现这个问题了 ,在网上发现这么个解释 最清楚 最明白 ;
(function(){})()
相当于先定义 function xx(){},后调用 xx();
()是最高优先级的,所以先执行function(){},
这个定义了一个匿名函数,等于xx=function(){}
接着就是调用xx()了;
给个例子
JScript codefunctionf1(a)
{ alert(a);
functionf2(a)
{ returnfunction(){ alert(a); }
}这里的var x=f2 就等于把函数传递给了f2,然后要执行这个函数,就必须加() 也就是x();
也就是f2()
还是(function f2(a){
return function(){
alert(a);
另外还有一个问题就是命名空间的问题
YY = YY||{};---声明一个叫YY的命名空间(定义一个全局的变量)
(function() {
=function() {------声明一个叫的命名空间(通过全局变量的增加属性的方式把闭包里的对象传到全局变量中,实现代码封装的效果)
isUndefined: function(o) {
return typeof o === 'undefined';
isString: function(o) {
return typeof o === 'string';
---调用方法
alert(ring('test me'));
这时候就有人不明了,楼上为什么要加(function() { 和)(); 最外面的这两行,有什么用啊?
JScript codeYY=YY||{}; //---声明一个叫YY的'命名空间(定义一个全局的变量)
function() { =function() {
//------声明一个叫的命名空间(通过全局变量的增加属性的方式把闭包里的对象传到全局变量中,实现代码封装的效果) isUndefined:function(o) {returntypeofo==='undefined'; },
isString:function(o) {returntypeofo==='string'; } }; }
//---调用方法
alert(ring('test me'));
疑问在这: 注释掉这两行有什么不一样的呢?不就是申明吗,为什么要用()()执行一下啊?
答:
(function(){})()意思是立即执行前一个括号里的function,相当于是一个匿名函数;由于里面的代码的执行,定义了这个对象,所以可以执行alert(ring('test me'));调用isString方法。
但是,如果按照你写的
functionaa(){..};//只是定义了一个叫aa的函数,但是并没有执行
alert(ring('test me'));//执行的时候会报找不到isString的方法。
这么写有什么好处??
(function{})()的写法有个好处,就是能很好的利用javascript的变量的可见范围为执行脚本时节省空间。例如以下写法1和写法2达到的目的是一样的,但是写法1的由于a变量的可见范围只是在匿名函数体内,所以a在执行完这个匿名函数后就释放空间了。但是写法2会一直存在该页面中。
写法1:
JScript code(function(){vara=2; alert(a); })();
写法2:
JScript codevara=2; alert(a);
-
网页设计10大灵感来源介绍
不仅仅只有网页设计能激发我们创建出色网站的动力,几乎我们身边的任何事都会有此作用。以下是本站小编搜索整理的关于网页设计10大灵感来源介绍,供参考借鉴,希望对大家有所帮助!想了解更多相关信息请持续关注我们应届毕业生考试网!自然图01图02思考设计的最佳场所...
-
javascript闭包的定义及应用实例分析
官方解释“闭包”是一个拥有许多变量和绑定了这些变量的环境表达式(通常是一个函数),因而这些变量也是环境表达式的一部分。通俗解释Javascript中所有的函数都是一个闭包。不过一般来说,嵌套的function产生的闭包更为强大,也是大部分时候我们所说的“闭包”。看如下...
-
WAP教程:WML 链接和图像
链接可以制作WML卡片来显示WML的锚功能,图像可以制作WML卡片来显示图像.链接可以制作WML卡片来显示WML的锚功能。标签总是要规定一个任务("go","prev",或"refresh")。任务定义了当用户选择此链接时要做的事情。在本例中,当用户选择"Nextpage",其任务是"前往":Next...
-
关于jQuery实现鼠标单击网页文字后在文本框显示的方法介绍
本文实例讲述了jQuery实现鼠标单击网页文字后在文本框显示的方法。分享给大家供大家参考。具体实现方法如下:张三李四王五赵六选择姓名$("ulli")k(function(){vartext=$(this)();$("input")("");$("input:checked")nts("td")ings("td")dren("input")(text);})希...
相关文章
- JavaScript中Function函数
- java如何利用java.net.URLConnection发送HTTP请求
- javascript之Function对象学习小结
- 浅析javascript中function 的length属性
- javascript中Function类型详细介绍
- 托福英语写作范文:Examinations exert a pernicious influence on educat
- 万恶的function在javascript中的运用实例分析
- 高中英语作文:My approach to difficulties in learning
- JavaScript instanceof 的使用方法有哪些
- 初一英语Unit 12 My favorite subject is science 课后练习题答