函数调用
来源:互联网 发布:养生源码 编辑:程序博客网 时间:2024/06/06 13:11
之前写了一个关于input下拉框的选择的js,不是很明白下面这三者的区别。
1)函数a
function a(){} a();
2)函数b
(function b(){})();
3)函数c
window.onload=function c(){}
现在查查资料总结他们之间区别。
函数a
函数a是最正常的一种函数调用,function 定义了一个函数a,然后当代码流流向a()时调用了函数a。
函数b
函数b其实一般用作私有作用域,私有作用域就是无论在什么地方,只要临时需要一些变量就可以使用私有作用域。js的私有作用域来自js没有块级作用域的概念。也就是函数声明一个变量,那么就会在整个函数内斗会被访问到,然而有时候我们值需要在函数的部分区域访问这个变量,或者我们接下来的函数体中需要定义一个一样的变量,但是使用的块不一样,那么久可以使用私有作用域。
eg:
function b(){ for(var i=0;i<3;i++){ alert(i); }//0,1,2 alert(i);// 3 }
本来最后一个alert(i)是不应该能访问到i,但是因为没有私有作用域的概念它访问到了,如果我们在接下里的函数体中继续使用i,那么函数就会出现错误。这时候我们使用私有作用域(块级作用域)。如下
eg:
function b() { (function () { for (var i = 0; i < 3; i++) { alert(i); } })(); //0,1,2 alert(i);//导致错误 }
这样接下来的函数就不能访问到i,可以再次定义i变量。
在全局作用域中调用
(function b(){})();
那么函数会被立马实现,并且作为私有作用域实现,不会影响到全局,也就不会搞乱全局作用域。
函数C
window.onload是当页面全部加载完成之后所做的事情。包括JS css 图片 html等所有的
有一个多次加载window.onload的函数:
function addLoadEvent(func){ var oldonload=window.onload; if(typeof window.onload!="function"){ window.onload=func; } else{ window.onload=function(){ oldonload(); func(); } } }
使用这个函数,我们可以在函数的末尾添加多个需要在加载完成后执行的函数。
0 0
- 函数调用
- 函数调用
- 函数调用
- 函数调用
- 调用函数
- 函数调用
- 函数调用
- 函数调用
- 函数调用
- 函数调用
- 函数调用
- 函数调用
- 函数调用
- 函数调用
- 调用函数
- 函数调用
- 函数调用
- 函数调用
- 质数因子
- 二分匹配HDU1054 Strategic Game
- Java EE HTML5 WebSocket 示例
- 普里姆算法,克鲁斯卡尔算法
- CSS3伪类选择器:nth-child()
- 函数调用
- arduino 蓝牙SSP远程烧录
- matrix file io
- 复习:JSP基本语法(JSP注释 + JSP指令 + JSP脚本元素 + JSP动作元素)
- leetcode 判断两棵树是否一致Same Tree
- GCD之dispatch queue深入浅出
- 搜狐-入职周年祝贺
- C#贪吃蛇(窗体版本)
- SYSTICK配置