JavaScript函數中的函數,即嵌套函數,是一種在函數內部定義另一個函數的方式。嵌套函數通常用于需要在整個函數內部使用的情況下,封裝局部作用域。以下是幾個關于javascript函數中的嵌套函數的示例:
示例 1:簡單的嵌套函數
function outerFunction() { var outerVar = "I'm outside!"; function innerFunction() { var innerVar = "I'm inside!"; console.log(outerVar); console.log(innerVar); } innerFunction(); } outerFunction();輸出: "I'm outside!" "I'm inside!" 在這個示例中,嵌套函數innerFunction被定義在outerFunction內部。當我們調用outerFunction時,它運行innerFunction,該函數可以訪問outerFunction的變量outerVar。同樣,它還定義了一個名為innerVar的局部變量,并將其輸出到控制臺。
示例 2:嵌套函數作為返回值
function myFunction() { var myVar = 1; function innerFunction() { var innerVar = 2; console.log(myVar); console.log(innerVar); } return innerFunction; } var test = myFunction(); test();輸出: 1 2 在這個示例中,嵌套函數innerFunction被定義在myFunction內部。myFunction返回innerFunction,而不是直接調用它。然后,我們將返回的函數存儲在名為test的變量中,然后調用它。
示例 3:使用嵌套函數模擬私有變量
function counter() { var count = 0; function changeBy(val) { count += val; } return { increment: function() { changeBy(1); }, decrement: function() { changeBy(-1); }, value: function() { return count; } }; } var myCounter = counter(); console.log(myCounter.value()); // 0 myCounter.increment(); console.log(myCounter.value()); // 1 myCounter.increment(); console.log(myCounter.value()); // 2 myCounter.decrement(); console.log(myCounter.value()); // 1輸出: 0 1 2 1 在這個示例中,我們使用了閉包的概念,將count變量封裝在counter函數內部,并返回一個對象,該對象可以訪問和修改計數器的值。增加和減少函數都調用changeBy函數,它可以訪問count變量并修改它的值。 使用JavaScript函數中的嵌套函數,可以讓我們編寫高效的代碼,封裝局部作用域,并在需要時輕松訪問變量和函數。