JavaScript闭包函数箭头函数调用与执行
生活随笔
收集整理的這篇文章主要介紹了
JavaScript闭包函数箭头函数调用与执行
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、標準的閉包函數
//一、標準的閉包函數 function A() {var i=0;++i;console.log('i : ' + i);return function b() {return function c() {return ++i}} }var a = A(); // 初始化A,執行A內的非function語句 ‘ i=0; ++i‘,輸出 I : 1 console.log(a()); // 執行function b,輸出 [Function: c] console.log(a()()); // 執行function b后執行 function c,輸出 2
?
// 將++i放入function b中 function A() {var i=0;return function b() {++i;console.log('i : ' + i);return function c() {return ++i}} }var a = A(); // 執行i=0 沒有輸出 console.log(a()); // 執行function b,輸出 i : 1 [Function: c] console.log(a()()); // 執行function b后,再執行function c, 輸出 i : 2 3
?
二、箭頭函數閉包函數
//箭頭函數的閉包函數 var Add = (i = 0) => {++i;console.log('I : ' + i);return (() => {return (() => ( ++i))}) };var v = Add(); // 會執行方法內的非function語句 輸出I : 1 console.log(v()()); // 第一個括號進入第一個箭頭函數,第二個括號進入第二個箭頭函數 輸出 2 console.log(v()()); // 輸出 3
?
//將++i放入第一個箭頭函數中 var Add = (i = 0) => {return (() => {++i;console.log('I : ' + i);return (() => ( ++i))}) };var v = Add(); //會執行方法內除箭頭函數的代碼,初始化i=0 console.log(v()); //第一個括號進入第一個箭頭函數,++i執行一次,所以執行完成i的值為1 輸出 I : 1 [Function] console.log(v()()); //兩個箭頭函數都會執行,++i執行兩次,所以執行完成i的值為3 輸出:I : 2 3
?
轉載于:https://www.cnblogs.com/xiaochengzi/p/9876995.html
總結
以上是生活随笔為你收集整理的JavaScript闭包函数箭头函数调用与执行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 妄想山海一级菜怎么得?
- 下一篇: 服务器 主动 推送 客户端浏览器 消息*