|
1
45
将函数分配给单击处理程序时, closure 创建。 基本上,当嵌套函数时会形成一个闭包,内部函数可以引用它们的外部封闭函数中存在的变量,即使它们的父函数已经执行了。
在执行click事件时,处理程序引用
正如您注意到的,通过包装click handler函数来接受
当您迭代时,实际上创建了4个函数,每个函数存储对
我使用以下代码片段来解释闭包(以及 curry )我认为一个简单的例子可以更容易地得到这个概念:
|
|
|
2
10
在不涉及太多细节的情况下,这基本上是通过将实例变量包装在一个立即执行的函数中,并将其传递回在单击元素时将执行的函数来创建实例变量的副本。 这样想:
所以在循环的每次迭代中,实际上 执行 一个返回 功能 与 现在的 变量的值。 如果您设想循环中有4个锚,那么您将创建4个独立的函数,这些函数可以可视化为..
我会考虑使用JavaScript来研究范围和闭包,就好像您沿着这条路走,并且不确切地了解正在发生的事情,您可能会遇到意想不到的行为带来的巨大问题。 |
|
3
2
当触发onclick事件时,调用匿名函数并引用同一个变量
解决问题的方法是使用返回函数的函数:
|
|
|
BlurKid · R中for循环时结果的奇怪差异 1 年前 |
|
|
bigjdawg43 · 迭代多个数据帧中的列并有条件地执行操作 1 年前 |
|
|
xhamsterIT · 循环VBA Microsoft Excel 1 年前 |
|
|
Nico44044 · 使用for循环遍历Django模型字段 1 年前 |
|
|
chanbo chung · 如何在聚合中获得所有可能的组合 1 年前 |
|
|
Himanshu · 无法在逐行二进制搜索中迭代2D数组中的所有行 1 年前 |
|
|
stephr · 循环为多个变量选择最接近另一个日期的日期 1 年前 |