簡體   English   中英

內部閉包函數語句未執行

[英]Inside closure function statement not executing

我對閉合函數有一個小問題。 我有下面的關閉功能:

 var add = (function() { var counter = 0; console.log('Executed'); return function() { return counter += 1; }; })(); add(); 

這是一個自調用函數,因此第一次執行每個語句,但是當我在閉包語句內部調用add()方法時,除return語句外不執行。

運行該代碼段后,請瀏覽一下日志。

 console.log('Before first execution.'); var add = (function() { console.log('Inside First time execution'); var counter = 0; console.log('Executed'); console.log('Returning a Funciton.'); // Inner Function. return function() { console.log('Inner function called.') return counter += 1; } })(); console.log('End of first execution'); console.log('Start of second execution'); add(); console.log('End of second execution'); 

add()是一個自調用函數,可立即獲取。 現在,在調用時,將返回一個函數。 現在的技巧是,這個新返回的函數(可以說是inner函數)被分配回變量add 因此,現在此add轉為指向/引用此inner函數。

在第二次執行中,因此,當您調用add() ,它一直指向被調用的內部函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM