javascript的函数比其他编程语言函数内容还多的多.
- 自调函数
什么是自调函数呢
就是函数在定义后可以自行调用。比如像这样:
(function (){
alert ("我是自调函数");
})();
这种语法看上去还挺吓人 但是理解起来并不困难 也就是将匿名函数放进一个括号内 外面在紧跟着一个括号。第二括号表示
‘立即调用’的意思,当然也是传递参数的地方 比如:
(function (name){
alert ('My name is ' +'name' !);
}
)('ALazyPig');
自调函数 使用的好处就是不会产生全局变量,当然缺点就是无法重复执行(当然你可以放进某个循环里 或放进某个函数里)
2内嵌函数
所谓内嵌函数 就是在函数里在定义个函数。
function fun (param){
function fn(two){
return two *2;
};
return 'the result is'+ fn(param);
};
当调用函数fun时,函数fn也会在其内部调用,而在fun函数外是无法调用,所以也可以称他为(内部)私有函数
alert(fun(3)); //9
alertfn((3)) ; //alert fn is not defined
2.以函数为返回值的函数
因为函数始终有个返回值,即使有时候不是明确的返回,也会隐式返回一个undefined,既然函数都会返回一个值 ,那么也会可能返回一个函数。比如:
function one (){
alert('ONE');
return function(){
alert('TWO');
};
}
上面代码 先alert'one',但是返回是另一个函数 alert'two',调用时直接将函数赋值给某个变量就可以了。
var newfun = one ();
alert(newfun());
当然如果想立即执行的话 直接在函数加个括号就行了
one()();