问题标签 [anonymous-function]

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 投票
16 回答
3368 浏览

recursion - 哪些语言支持*递归*函数文字/匿名函数?

如今,似乎有不少主流语言支持函数文字。它们也被称为匿名函数,但我不在乎它们是否有名字。重要的是,函数文字是一个表达式,它产生一个尚未在其他地方定义的函数,例如在 C 中,&printf不计算在内。

编辑添加:如果你有一个真正的函数文字表达式<exp>,你应该能够将它传递给一个函数f(<exp>)或立即将它应用于一个参数,即。<exp>(5).

我很好奇哪些语言可以让你编写递归的函数文字。维基百科的“匿名递归”文章没有给出任何编程示例。

让我们以递归阶乘函数为例。

以下是我知道的:

  • JavaScript / ECMAScript 可以做到这一点callee

    /li>
  • 在语言中很容易使用letrec,例如 Haskell(它叫它let):

    let fac x = if x<2 then 1 else fac (x-1) * x in fac

    在 Lisp 和 Scheme 中有等价物。请注意, 的绑定fac是表达式的局部变量,因此整个表达式实际上是一个匿名函数。

还有其他人吗?

0 投票
7 回答
1398 浏览

javascript - 你如何在 JavaScript 中解释这种结构?

这种语法有什么特别之处?()() 是什么意思?意味着?

0 投票
4 回答
1950 浏览

javascript - Firefox Javascript 事件匿名函数

当用户单击 HTML 表中的单元格时,我试图注册一个匿名函数。下面是一些原始的、纯粹的代码:

注意使用eval, 因为它位于一个循环中,并且匿名函数每次都不同。

可以说,这在 Firefox 2 中工作得非常好。但是,Firefox 3 会抛出一个“语法错误”,指向“函数”一词之后的括号内。

有人对我如何解决这个问题有任何聪明的想法吗?


为了清楚地说明我正在尝试做什么,这里有一个非常简化的示例:

换句话说,我希望用不同的参数值来触发相同的函数div

0 投票
2 回答
423 浏览

scala - Scala 中是否有用于在匿名函数中绑定值的语法糖?

而不是写

我想写一些类似的东西

Scala 中有没有类似这种语法糖的东西?

0 投票
2 回答
8329 浏览

anonymous-function - Firefox:从匿名 javascript 函数传递事件

在这个简短的代码中,内联事件起作用——“事件”被传递给 testKeyPress 函数

然而,在这个匿名版本中,gecko 中没有传递事件:

如何传递函数自己的事件?

0 投票
3 回答
114971 浏览

javascript - 如何使用参数传递对函数的引用?

可能重复:
如何在 JavaScript 函数调用中预设参数?(部分功能应用)

我需要能够传递对具有给定参数集的函数的引用

这是一个不带参数传递引用的示例:

现在我需要做的是传递相同的f函数,但这次我需要将参数传递给引用。现在,我可以使用匿名函数来执行此操作,并f在新创建的函数中使用参数调用该函数,如下所示:

但我的问题是,有没有办法通过f参数传递对函数的直接引用 to fr,但不将其包含在匿名函数中?

我需要分配什么fr以使其在没有参数 ( fr()) 的情况下可调用,以便在fr调用时执行 f(1,2,3)?

[更新] 我关注了Jason Bunting关于Partial Function的回答,他在那里发布的 JavaScript 函数正是我想要的。这是解决方案:

0 投票
3 回答
1811 浏览

javascript - 在javascript中按值传递匿名函数?

我有一个函数,它接受一个匿名函数作为参数并将其设置为一个变量(范围)以供参考。然后我尝试使用该引用执行另一个函数,但它显然失败了,因为该函数超出了范围。

我想知道是否有人知道将匿名函数作为匿名函数直接传递的简单方法,避免范围问题?

编辑:为了澄清, el 元素是在函数与参数列表隔离后定义的。此外,el 元素也是参数列表的一部分。如果只有我使用此代码,我可能会使用两个参数列表,第二个参数是数组或哈希对象,但不幸的是,此代码将被一些不太熟悉 JS 甚至编码的人使用对于这个问题。

谢谢您的帮助!

这是我的代码的相关部分:

这是缩写的,所以只要相信 el 已定义。JAS.Globals.eventListen 只是一个智能的 addEventListener。

0 投票
5 回答
21391 浏览

matlab - 如何在 MATLAB 匿名函数中执行多个语句?

我想做这样的事情:

所以当我说:

它将执行functionCall1()然后执行functionCall2()。(我觉得我需要像C , operator之类的东西)

编辑:

functionCall1并且functionCall2不一定是返回值的函数。

0 投票
1 回答
133 浏览

apache-flex - 任意数量的带有个人数据的匿名加载程序处理程序?

我需要在 AIR 应用程序中加载任意数量的文件。

我想遍历一个 File 对象数组,并为每个人的 File.url 创建和启动 Loaders。

当它们完成后(事件 COMPLETED 或 IOErrorEvent.IO_ERROR),我想将它们的数据填充到某个地方。如果他们失败了,我想进行异常报告。我找不到从事件侦听器中引用 File 对象的任何方法(当然不是 IO_ERROR)

最好的方法是为每个将文件信息“硬编码”到其中的启动器创建单独的事件处理程序。至少,我可以将函数本身用作字典的索引:

我可以使用 event.currentTget 并将 Loader 实例用作索引吗?那会有什么奇怪的依赖吗?

干杯

0 投票
11 回答
11748 浏览

c# - 将 FieldName 作为参数传递

我不太确定我正在尝试做什么,所以我很难从谷歌中找到任何线索。

我有几个具有相同逻辑的方法,唯一不同的是它们在对象上使用的属性。

而不是我想要的三个单独的方法Foo,其签名看起来更像

这可能吗?