function a(){
alert('aaa');
return function b(){
alert('bbb');
}
}
//調用內部私有函數b,方法1
var func=a();
func();
//方法2:自調用
a()();
//重寫本身的函數(好比第一次調用時作準備工做)
function a(){
alert('aaa');
a=function b(){
alert('bbb');
}
}
a();//輸出:aaa
a();//輸出:bbb
var a=function(){
//私有函數
function setUp(){
var setup='doSomeThing';
}
function doWork(){
alert('do your job');
}
setUp();
return doWork;//沒加括號表示引用
}();//自調用
a();//這是第二次調用,輸出:do your job
var func=new Function('a','b','return a+b');
func(3,5);//調用函數
var n;
function f(){
var a='yolo';
n=function(){
return a;
};
}
f();
alert(n());
function f1(x){
var n=function(){
return x;
};
x++;
return n;
}
var output=f1(2);
alert(output());//輸出3,由於遞增在前,return在後