1、函數嵌套函數
1 function calcuate(opr, a, b) { // 定義函數,opr - -> 符號,a,b - -> 數值 2 3 //定義 + 函數 4 function add(a, b){ 5 return a + b; 6 } 7 8 //定義 - 函數 9 function sub(a, b){ 10 return a + b; 11 } 12 13 var result; 14 15 switch (opr) { // 循環判斷傳入的符號 16 case “+” : 17 result = add(a, b); // 調用 + 函數 18 break; 19 case “-” : 20 result = sub(a, b); // 調用 - 函數 21 break; 22 } 23 return result; 24 } 25 26 var res1 = calculate(“+”, 10, 5); //調用函數內 + 函數 27 console.log(res1); // 輸出 15 28 var res2 = calculate(“-”, 10, 5); //調用函數內 - 函數 29 console.log(res2); // 輸出 5
2、函數返回函數
簡單來說就是把函數作為另一個函數的反悔類型使用
//定義兩個方法函數,一個循環函數
1 //定義計算長方形面積函數 2 function rectangleArea(width, height){ 3 var area = width * height; 4 return area; 5 } 6 //定義計算三角形面積函數 7 function triangleArea(bottom, height){ 8 var area = 0.5 * bottom * height; 9 return area; 10 } 11 // 循環函數 12 function getArea(type) { 13 var returnFunction; 14 switch (type) { 15 case “rect” : 16 returnFunction = rectangleArea; //返回 長方形計算函數 17 break; 18 case “tria” : 19 returnFunction = triangleArea; //返回 三角形計算函數 20 break; 21 } 22 return returnFunction; 23 } 24 25 var area = getArea(“tria”); // 調用循環函數里的 三角形計算函數 26 console.log(area(10, 15)); //輸出 75; 27 var area = getArea(“tria”); // 調用循環函數里的 長方形計算函數 28 console.log(area(10, 15)); //輸出 150;