函数示例
function关键字
普通函数创建
引用传值函数
function hello_01() { var str01="lww"; var str02="oop"; var str03=new Array("one","two"); document.write(str01+"||"+str02+"||"+str03); hello_02(str01,str02,str03); document.write("<br/>");//引用的函数传值 document.write(str01+"||"+str02+"||"+str03); } function hello_02(str_01,str_02,str_arr) { str_01="wwl"; str_02="poo"; str_arr[1]="three"; }
输出hello_01()函数
当然也可以使用return返回值
匿名函数
将函数看成是一个对象(事实上就是一个对象)
var func=new Function("","document.write(\"hello world!\");" );
语法格式:
var value=new Function("参数1","参数2",..."参数n","function");
匿名函数的申明也可以是字符串变量,即时执行失败或语句错误
注意:函数在设置参数的时候是不需要声明参数类型的
函数字面量
function func01(func,str) { document.write(func(10,20)+str); } function func02() { var func=function(x,y){return x*y}; var funcc=new Function("x","y","return x*y" );//匿名函数 func01(func,"第一个函数"); document.write("<br/>"); func01(funcc,"第二个函数"); }
执行输出func02()函数,函数变成了参数,但还是和匿名函数有区别的,函数字面量只会被解析一次(这个也不是太懂)
嵌套函数和闭包
简单
function func03(y) { return function(x){ return x*y;} } function func04() { var func_value01=func03(8);//返回函数对象,函数也是一个对象 var func_value02=func_value01(7);//对该函数对象传值 document.write(func_value02); }
闭包:通常当函数结束时该作用范围就会释放,但当一个内部函数向外部函数返回一个值,并且赋予外部变量值的时候,内部函数就将附加到外部函数上,然后再附加到调用它们的应用程序中,保证内部函数和外部函数参数和属性的完整。(今天看到此概念,恍然大悟,原来它叫闭包)