我一直试图理解闭包,但是我看到并阅读的每个示例都在函数内部包含相同的函数示例,但是我遇到的所有闭包问题都在循环内部包含函数。
for (var i = 0; i < 2; i++){
setTimeout(() => console.log(i));
}
以上面的代码为例,setTimeout
是浏览器内部的API方法,i
没有通过。
function sayHello(name) {
var text = 'Hello ' + name;
var say = function() { console.log(text); }
say();
}
sayHello('Joe');
上面的频繁使用used closure example是不一样的,因为我在setTimeOut
内部调用了for loop
。 setTimeout
是在函数/循环内未定义的,我只是在调用它。因此,可以在函数的外部中定义它,这完全与闭包相反。我在这里想念什么
第二,我有一个for loop
,而不是另一个函数之上的一个函数。变量声明在等效项之上吗?