Javascript的函數(shù)類型:1、構(gòu)造函數(shù),使用new關(guān)鍵字定義調(diào)用的函數(shù),默認(rèn)返回時(shí)一個(gè)新對象;2、匿名函數(shù),沒有實(shí)際名字的函數(shù),不會造成全局變量的污染;3、閉包函數(shù),具有訪問另一個(gè)函數(shù)作用域中變量權(quán)限的函數(shù);4、動態(tài)函數(shù),參數(shù)列表和函數(shù)體是通過字符串動態(tài)指定的函數(shù)。
本教程操作環(huán)境:windows10系統(tǒng)、javascript1.8.5版、Dell G3電腦。
Javascript的函數(shù)類型有哪些
1.構(gòu)造函數(shù)
Javascript中構(gòu)造函數(shù)是指使用new關(guān)鍵字定義調(diào)用的函數(shù),其默認(rèn)返回的是一個(gè)新對象,
2.匿名函數(shù)
Javascript中匿名函數(shù)是指沒有實(shí)際名字的函數(shù),使用匿名函數(shù)不會造成全局變量的污染。
3.閉包函數(shù)
Javascript中閉包函數(shù)是指具有訪問另一個(gè)函數(shù)作用域中變量權(quán)限的函數(shù),閉包函數(shù)常用于在函數(shù)的內(nèi)部創(chuàng)建。
4.動態(tài)函數(shù)
Javascript中動態(tài)函數(shù)是指其參數(shù)列表、函數(shù)體是通過字符串動態(tài)指定的函數(shù)。
示例如下:
<script> function show(){ alert("第一個(gè)。。。"); } function show(str){ alert("第二個(gè)"); } function show(a,b){ alert("第三個(gè)。。。"); alert(a+":"+b); } </script> </head> <!-- 可變參數(shù)的函數(shù): 在js中都是可變參數(shù)的函數(shù) <!-- 1 函數(shù)雖然定義時(shí)是聲明成兩個(gè)參數(shù),但調(diào)用時(shí)卻是可以傳入任意個(gè) --> <!-- 2 每個(gè)函數(shù)中,存在一個(gè) 默認(rèn)的數(shù)組arguments ,里面存儲著本次調(diào)用時(shí)傳入的所有實(shí)參 --> <body> <!-- 1, 可變參數(shù)的演示: --> <script> show();//當(dāng)調(diào)用之后,會把前面的沖掉 //undefined:undefined show(111);//當(dāng)調(diào)用之后,會把前面的沖掉 // 11:undefined show("a","b");//當(dāng)調(diào)用之后,會把前面的沖掉//a:b show(1,2,3,4);//1:2 </script>
綜上的例子,Js當(dāng)中的函數(shù)是不存在重載的。一定就通配所有的了,函數(shù)雖然定義時(shí)是聲明若干變量,但調(diào)用時(shí)卻是可以傳入任意個(gè)。每個(gè)函數(shù)中,存在一個(gè) 默認(rèn)的數(shù)組arguments ,里面存儲著本次調(diào)用時(shí)傳入的所有實(shí)參。
匿名函數(shù)
<!DOCTYPE html> <html> <head> </head> <body> <!-- 演示JavaScript匿名函數(shù) --> <script type="text/javascript"> var res =function(a,b){//注意是小寫func return a+b; };</span> alert("sum="+res(1,2));//sum=3 alert("res="+res("abc","def"));//res=abcdef </script> </body> </html>
動態(tài)函數(shù)
簡介:利用Js當(dāng)中內(nèi)置的對象Function來構(gòu)造一個(gè)函數(shù),構(gòu)造方法中的第1個(gè)參數(shù)是“形參”,第2個(gè)參數(shù)是“函數(shù)體”。
<span style="font-size:18px;"><!DOCTYPE html> <html> <head> <title>DTfunc.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> <!-- 利用Js當(dāng)中內(nèi)置的對象Function來構(gòu)造一個(gè)函數(shù),構(gòu)造方法中的第1個(gè)參數(shù)是“形參”,第2個(gè)參數(shù)是“函數(shù)體”。 --> <!-- 該思想類似于Java當(dāng)中的類反射。我們平時(shí)寫函數(shù)時(shí)通常不用,但關(guān)鍵的地方一寫,整個(gè)程序的功能會變得很活 --> <script> var res=new Function("x,y","var sum=0;sum=x+y;return sum;") var sum=res(12,34);//46 var sum=res("abc","bss");//abcbss alert("sum="+sum); </script> </body> </html></span>
【