问题标签 [closures]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
2384 浏览

java - 类(java)和闭包(javascript)之间的区别?

我不明白闭包如何比类更强大。看起来我可以使用类实现相同的闭包行为。任何帮助,将不胜感激

0 投票
4 回答
13726 浏览

groovy - Groovy:闭包内“this”的含义

以下示例改编自“Groovy in Action”

根据书,this闭包内部的值是最外层范围(即julia声明的范围)。我是否正确地假设

  • this在闭包内部计算闭包被调用的范围?
  • 在上面显示的闭包内,thiscaller引用相同的范围?

谢谢,唐

0 投票
3 回答
6195 浏览

groovy - 在 Groovy 中实现带有闭包的接口 - 调用了什么方法?

groovy 中有一个习惯用法是用一个闭包来实现一个接口。闭包必须准备好处理传递的任何参数。这很好用。但是如何确定在接口上调用了什么方法呢?

参数可用,但被调用的方法的名称 - 显然 - 不是。我错过了什么吗?

0 投票
8 回答
1534 浏览

programming-languages - 为什么是高阶程序?

因此,如果一种语言提供更高阶的过程,那么我可以拥有返回过程的过程。就像是:

要创建新程序,我只需执行以下操作:

类似的任务可以在不支持高阶过程的语言中完成,方法是定义Proc接受 4 个而不是 3 个参数并调用此过程来定义ProcA,例如:

那么为什么有这么多关于高阶程序的模糊呢?我错过了什么吗?

0 投票
1 回答
1214 浏览

javascript - jQuery,悬停方法和闭包

一段时间以来一直在努力解决 Javascript 闭包问题,试图将大脑包裹在函数范围内,但我认为它们正在包裹着我。我看过很多帖子(Nyman 的帖子最有帮助),但显然还是不明白。尝试在 jQuery 中的悬停方法上运行循环。需要悬停功能来最终触发一个以上的动作,但现在很高兴让它们使用单​​个图像交换。

尝试使用匿名函数从另一个 jQuery 帖子中确定范围的想法。似乎工作正常,但在第一个悬停函数中为数组值抛出了一个未定义的值,我猜是因为它是一个内部函数(硬编码的图像源在那里正常工作)。

0 投票
2 回答
4523 浏览

groovy - 常规闭包参数

本书中出现了以下使用 grails 邮件插件提供的 sendMail 方法的示例。

我知道 {} 中的代码是一个作为参数传递给 sendMail 的闭包。我也明白tosubject并且body是方法调用。

我试图弄清楚实现 sendMail 方法的代码是什么样的,我最好的猜测是这样的:

这是合理的,还是我错过了什么?特别是,闭包(to, subject, body)中调用的方法是否必须与 ? 属于同一类的成员sendMail

谢谢,唐

0 投票
1 回答
237 浏览

jquery - 为 load 事件回调中的每个新元素设置不同的 id

编辑了我原来的问题

将 id 设置为新添加的元素或者我使用函数中的参数 noteid 时,问题是相同的。结果是,如果这个函数得到循环,每个元素都会得到相同的 id。

如何为每个新添加的元素设置不同的 id ???

就像现在一样,提交事件中的值对于每个元素都是相同的。如果我必须循环此函数以根据数据库条目创建多个注释,则仅记住最后添加的 noteid 并且每个元素都使用相同的 id。

你可以看到如果你看到页面会发生什么 首先你必须通过单击带有箭头的图标来创建两个笔记然后删除顶部的一个然后刷新页面。你会看到第二个被删除了。

谢谢,理查德

0 投票
26 回答
574060 浏览

python - lambdas 有什么用?

我正在尝试找出 Python lambdas。是lambda那些在现实生活中应该被遗忘的“有趣”的语言项目之一吗?

我确信在某些极端情况下可能需要它,但鉴于它的模糊性,它有可能在未来的版本中被重新定义(我的假设基于它的各种定义)以及降低的编码清晰度 - 如果它避免?

这让我想起了 C 类型的溢出(缓冲区溢出)——指向顶部变量并重载以设置其他字段值。感觉有点像技术人员的表演,但维护编码员的噩梦。

0 投票
4 回答
2862 浏览

lua - 如何在lua中关闭?

假设我有一个包含以下行的文件名“test.lua”:

因为 loadstring 在全局环境下做它的事情,所以当我调用 f_generate()() 时我会得到一个错误“尝试调用全局'f'(一个 nil 值)”

注释掉的代码表明函数环境不能处理这个问题。

因为表是lua中唯一的数据结构,(函数环境和其他很多东西都是通过表实现的),我认为假设闭包也是通过表实现是合理的,但是我怎么能得到它呢?

0 投票
3 回答
2230 浏览

javascript - 数据是如何传递给 JavaScript 中的匿名函数的?

当我将“this”传递给这样的匿名函数时:

我收到“this.onTimeout 不是函数”错误。我猜想在匿名函数执行时“this”不再可用?所以我一直在这样做:

这真的是你应该做的事情吗?它有点工作,但感觉很奇怪。

然后我们有这个例子:

这输出:

它不应该输出:

反而?然后我发现将 $.getJSON-statement 放在另一个函数中可以使它全部工作:

这输出:

(或相反。)这里发生了什么?将变量传递给匿名函数的正确方法是什么?

很抱歉这篇令人困惑和冗长的帖子。