[英]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.