Javascript的函數類型:1、建構函數,使用new關鍵字定義呼叫的函數,預設回傳時一個新物件;2、匿名函數,沒有實際名字的函數,不會造成全域變數的污染;3、閉包函數,具有存取另一個函數作用域中變數權限的函數;4、動態函數,參數清單和函數體是透過字串動態指定的函數。
本教學操作環境:windows10系統、javascript1.8.5版、Dell G3電腦。
1.構造函數
Javascript中建構函數是指使用new關鍵字定義呼叫的函數,其預設回傳的是一個新對象,
2.匿名函數
Javascript中匿名函數是指沒有實際名字的函數,使用匿名函數不會造成全域變數的污染。
3.閉包函數
Javascript中閉包函數是指具有存取另一個函數作用域中變數權限的函數,而閉包函數常用於在函數的內部建立。
4.動態函數
Javascript中動態函數是指其參數清單、函數體是透過字串動態指定的函數。
範例如下:
<script> function show(){ alert("第一個。。"); } function show(str){ alert("第二個"); } function show(a,b){ alert("第三個。 1 函數雖然定義時是宣告成兩個參數,但呼叫時卻是可以傳入任意個--> <!-- 2 每個函數中,存在一個預設的陣列arguments ,裡面儲存著本次呼叫時傳所有入的實參--> <body> <!-- 1, 可變參數的示範: --> <script> show();//當呼叫之後,會把前面的沖掉//undefined:undefined show(111);//當呼叫之後,會把前面的沖掉// 11:undefined show("a","b");//當呼叫之後,會把前面的沖掉//a:b show(1,2,3,4);//1:2 </script>綜上的例子,Js當中的函數是不存在重載的。一定就通配所有的了,函數雖然定義時是宣告若干變量,但呼叫時卻是可以傳入任意個。每個函數中,存在一個預設的陣列arguments ,裡面儲存著本次呼叫時傳入的所有實參。
匿名函數
<!DOCTYPE html> <html> <head> </head> <body> <!-- 示範JavaScript匿名函數--> <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>動態函數
簡介:利用Js當中內建的物件Function來建構一個函數,建構方法中的第1個參數是“形參”,第2個參數是“函數體”。
<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當中內建的物件Function來建構一個函數,建構方法中的第1個參數是“形參”,第2個參數是“函數體”。 --> <!-- 該想法類似於Java當中的類別反射。我們平常寫函數時通常不用,但關鍵的地方一寫,整個程式的功能會變得很活--> <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>