内部闭包函数语句未执行
Inside closure function statement not executing
我有一个关于闭包函数的小问题。我有下面的关闭功能:
var add = (function() {
var counter = 0;
console.log('Executed');
return function() {
return counter += 1;
};
})();
add();
它是一个自调用函数,所以第一次执行每个语句时,但当我在除了return
语句之外没有执行的闭包语句内部调用add()
方法时。
运行代码段后查看日志。
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()
时,它一直指向被调用的内部函数。
相关文章:
- 如何在ReactJS JSX中执行嵌套的if-else语句
- Sharepoint JScript if语句未执行
- If语句只执行第一个条件并运行其他条件,但没有结果
- If语句只执行一次
- 执行 If 语句,仅当元素存在时
- Google Chrome 不会执行所有 JavaScript 语句
- 每次 url 哈希更改时执行 if 语句
- ReactJS:在带有 ajax 调用的 .map() 语句完成后执行代码
- 三元运算符未执行的虚假语句
- for 循环中的 if 语句都执行,而不仅仅是一个
- 如何在javascript中循环结束后执行语句
- 如何在页面加载后执行if语句
- 嵌套if语句中的else语句.这段代码如何知道要执行哪个else语句
- If语句仅执行Else部分
- JQuery If Else语句从未执行过
- 如何在使用 window.onerror 处理语句 1 中的错误时继续执行语句 2
- 在Javascript中有顺序执行语句的方法吗?
- Mozilla storageService: "不能执行语句:错误:Permission denied &q
- 如何使用一个变量放置两个执行语句
- NODEjs 在 for 循环中同步执行语句