1 内部私有函数<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript">//内部私有函数// function a(param){// function b(param1){// return param1+10;// };// return '在a函数体内调用b函数的结果为:'+b(param); // }// document.write(a(5));// document.write(b(1));// function a(param){// var b=function(param1){// return param1+10;// };// return '在a函数体内调用b的结果'+b(param);// }// document.write(a(5));//返回函数的函数//function a(){// alert('aaa');// return function(){// alert('bbb');// };//}////var func=a();////func();//a()();//重写自己的函数//function a(){// alert('aaa');// a=function(){// alert('bbbb');// };//}//a();//a();var a=function(){function setUp(){var setup='doSomeThing';}function doWhat(){alert('要执行的操作');}setUp();return doWhat;}();a();</script></body></html>2 js内置函数<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript">//通过Js内置函数构造器创建函数// var func=new Function('a','b','return a+b'); //// alert(typeof func);// alert(func(3,5));// var func1=function(a,b){return a+b};// alert(func1(6,7));//作用域链// var a=1;// function test(){// var b=2;// return a;// }// alert(test());// alert(b);//scope chain// var a=1;// function test(){// var b=2;// function test1(){// var c=3;// alert(a);// alert(b);// alert(c);// return c;// }// test1();// }// test();//词法作用域//function f1(){// var a=12;// return f2();//}//function f2(){// var b=12;// return a;//}//alert(f1());function f1(){var a=1;return f2();}function f2(){var b=3;// alert(b);return a;}alert(f1());var a=55;alert(f1());a=656;alert(f1());</script></body></html>3 闭包<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript">//通过闭包突破全局作用域链function f(){var a='king';return function(){return a;}}// alert(a);var test=f();alert(test());</script></body></html>4 return<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript"> // var n;// function f(){// var a='king';// n=function(){// return a;// };// }// f();// alert(n());function f(param){var n=function(){return param;}param++;return n;}var test=f(456);alert(test());</script></body></html>5 参数类型<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript">function f1(){var n=1;test=function(){n+=1;};function f2(){alert(n);}return f2;}var res=f1();alert(res());test();alert(res());</script></body></html>6 获取参数<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript">var setValue,getValue;(function(){var n=0;getValue=function(){return n;};setValue=function(x){n=x;};})();// alert(n);alert(getValue());setValue(567);alert(getValue());</script></body></html>7 迭代器<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript">//迭代器中得应用function test(x){var i=0;return function(){return x[i++];};}var next=test(['a','b','c','d']);alert(next());alert(next());alert(next());alert(next());</script></body></html>8 参数属性<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript">// function f(){// var a=[];// var i;// for(i=0;i<3;i++){// a[i]=function(){ // return i;// };// }// return a;// }// var test=f();// alert(test[0]());// alert(test[1]());// alert(test[2]());// function f(){// var a=[];// var i;// for(i=0;i<3;i++){// a[i]=(function(x){// return function(){ // return x;// }// })(i);// }// return a;// }// var test=f();// alert(test[0]());// alert(test[1]());// alert(test[2]());function f(){function test(x){return function(){return x;}}var a=[];var i;for(i=0;i<3;i++){a[i]=test(i);}return a;}var res=f();alert(res[0]());alert(res[1]());alert(res[2]());</script></body></html>。