请教:这样写函数并直接调用有什么好处?(function(){alert('hi');})(); 看到jquery等很多js库都有这样的语法,这个语法有点怪异,第一对()符号是干嘛的,怎么理解? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function() 相当于一个匿名函数,加()后就调用了它。这就是闭包的一个应用。好处有:1.可以随意的return, 要是直接写在script标签中,则不能。2.不会增加额外的命名空间。3.看起来也很干净,把代码都放到一个函数包去执行,不是散落在各地。请各位继续补充http://www.scriptlover.com/controls/ 这和jQuery无关吧,JS的语法本身就是这样,匿名函数来的,其他语言里面也有很多类似的做法。有些代码只需要在特定的地方执行一次就行,又不需要反复调用,甚至连想函数名称的精力都可以省下来…… 谢谢1.可以随意的return, 要是直接写在script标签中,则不能。 -----这点不大理解。function() 相当于一个匿名函数,加()后就调用了它。 -----第三对()应该是调用我理解的,我是说第一对(),就是把匿名函数包括在内的那一对(function(){...}),这个语法很怪异,不知道哪儿有介绍。关于闭包,我想不能说local的函数都是吧,至少还有第二个条件,就是引用了父函数的局部变量,这里应该不存在闭包,但是我也不是特别确定。 (function(){alert('hi');})();等价于 var func = function(){alert('hi');};func();(function(){alert('hi');}) 应该就是 func 了,先定义,再引用。如果没有 “function(){alert('hi');}” 外面的(),js语法通不过。 即这样是无效的:<script type="text/javascript">alert(1);return; // <<<<<<<<<<alert(2);</script>另外可以声明局部变量,而减少内存垃圾。<script type="text/javascript">(function() { var i = 3; var j = 7; alert(i * j);})();alert(typeof i); // undefined // 未成为全局变量</script><script type="text/javascript">var i = 3;var j = 7;alert(i * j);alert(typeof i); // number</script> function(){};//function literal(function(){})();//call the function literal谢谢各位帅哥 response.write 打开页面问题 学习问题,请老师们指教 求下面代码的兼容性代码 密码框选中后无法取消 文本框的即时输入提示问题继续求助 Chrome插件开发遇到的问题 javascript能够获取网页中被选中文字的内容吗? <求助>看看这个如何做成弹出新窗口的形式? 一个奇怪的字符,不知如何写 bootstrap的模态框问题 有没有大神帮忙看看~ 各位大哥,紧急求助,automation服务器不能创建对象 怎么用函数传递类名啊。帮帮忙
1.可以随意的return, 要是直接写在script标签中,则不能。
2.不会增加额外的命名空间。
3.看起来也很干净,把代码都放到一个函数包去执行,不是散落在各地。请各位继续补充http://www.scriptlover.com/controls/
有些代码只需要在特定的地方执行一次就行,又不需要反复调用,甚至连想函数名称的精力都可以省下来……
-----
这点不大理解。function() 相当于一个匿名函数,加()后就调用了它。
-----
第三对()应该是调用我理解的,我是说第一对(),就是把匿名函数包括在内的那一对(function(){...}),这个语法很怪异,不知道哪儿有介绍。关于闭包,我想不能说local的函数都是吧,至少还有第二个条件,就是引用了父函数的局部变量,这里应该不存在闭包,但是我也不是特别确定。
如果没有 “function(){alert('hi');}” 外面的(),js语法通不过。
alert(1);
return; // <<<<<<<<<<
alert(2);
</script>另外可以声明局部变量,而减少内存垃圾。
<script type="text/javascript">
(function() {
var i = 3;
var j = 7;
alert(i * j);
})();
alert(typeof i); // undefined // 未成为全局变量
</script><script type="text/javascript">
var i = 3;
var j = 7;
alert(i * j);
alert(typeof i); // number
</script>
(function(){})();//call the function literal谢谢各位帅哥