1.声明函数
- 函数声明
function fun(){};
fun();
- 字面量函数
var s = function(){};
s();
- 构造函数
function Fun(){};
var fun=new Fun();
2.回调函数
某个动作做完之后,才执行的函数。
function move( obj , attr , step , stopValue , fn ){
// if(fn){ fn(); }
fn&&fn(); //如果发现一个为假,就不会判断后面的!
}
使用回调函数,可解决内嵌调用本函数的死循环现象。
btn.onclick=function(){
move(oDiv,"left",10,500,function(){
move(oDiv,"top",10,500);
});
}
3.伪函数
<a rel="nofollow" href="javascript:fun();"></a>
//执行JavaScript里的代码,忽略默认事件,如<a rel="nofollow" href="javascript:void(0);"></a>。
4.匿名函数
(function(){ alert("a"); })();
(function(name){ alert(name); })(name);
//匿名函数可以自执行。
5.闭包
- 闭包是指函数里嵌套函数
function fun(){ //变量a会长期存于内存中(类似全局变量),直到浏览器关闭。 var a=10; return function(){ alert(a+1); } } var s=fun(); s();//11。
* 闭包可以避免全局污染。其可拥有私有变量a,不需要设置全局变量a.
* 闭包会引起内存泄漏(导致闪退或系统崩溃),可手动释放。
* 闭包会导致this指向错乱。