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