问题标签 [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 投票
4 回答
4553 浏览

javascript - 在 Javascript 构造函数中引用实例变量

我正在尝试通过执行以下操作来维护对象的状态:

当我调用 changeState 方法时,我想将实例变量 foo 设置为“bar”。

例如:

据我所知,正在发生的事情是内部匿名函数中的“this”指向 window. 我不确定发生了什么事。

我在正确的轨道上吗?有更好的方法吗?

0 投票
1 回答
194 浏览

javascript - JavaScript 中的匿名函数有问题

这显示:

  • 测试
  • 测试
  • 另一个测试
  • 测试

分配给 onBeforeLoad 的匿名函数中的 alert() 一直显示“测试”。我试试这个:

它工作得很好。它显示:

  • 测试
  • 测试
  • 测试
  • 测试

任何人都知道为什么会发生这种情况?

0 投票
4 回答
2880 浏览

functional-programming - 不同的编程语言如何使用闭包?

据我所知,结合其他人的知识,在主流语言中

  • 目标 C
  • C#
  • VB.net
  • 爪哇
  • Python
  • 红宝石
  • Javascript
  • 语言
  • Perl

有闭包和匿名函数。普通的 C/C++ 没有这些。

这些语言中的闭包是否具有相同的语义?它们对于日常编程有多重要?

一些背景知识:我一直在阅读针对 Apple 的 Grand Central Dispatch 的Objective C的新增功能,并认为我应该了解是否真的只有一种不同的方法可以将块状结构引入语言。

0 投票
8 回答
581 浏览

c# - 匿名方法/功能:基本特征还是违反 OO 原则?

最近 perl 和 C# 等主流语言对匿名方法/函数的发展是重要的,还是违反 OO 原则的奇怪特性?

最近的库,比如英特尔的线程构建模块的最新版本以及微软的 PPL 和 Linq 依赖于这些东西是一件好事,还是不是?

当前拒绝匿名方法/函数的语言,如 Java,是在坚持纯粹的 OO 模型方面做出明智的选择,还是因为缺乏基本的编程特性而落后?

0 投票
1 回答
5807 浏览

javascript - 如何获取 Javascript 匿名函数的“this”(范围)?

假设我有一个匿名函数需要对其上下文进行操作,但它是绑定到“窗口”还是绑定到未知对象是不同的。

如何获取对调用匿名函数的对象的引用?

编辑,一些代码:

你可能会合理地问,你到底为什么想做这样的事情。好吧,我首先想解压缩作为数组传递的参数。就像 Python " *" 运算符所做的那样:

我在 SO 中进行了挖掘,发现了一篇告诉使用“apply()”的帖子:

有趣的是,如果在对象中,它将使用当前的“this”,如果不是,则使用“window”。

但我认为有一个问题:

如果“bar()”本身在一个对象中,那么“this”将引用“bar()”容器,因此它不起作用。

顺便说一句,我不想​​将范围作为参数传递

我当然可以将参数和函数连接为字符串,然后使用 eval,但我只想在找不到更干净的东西时才使用它。

当然,如果这是不可能的(毕竟,它可能是),那么我会这样做:

编辑 2:完整场景,如评论中所述。

我正在使用 qunit 在 Javascript 中执行单元测试。这很酷,但我错过了一种检查是否引发异常的方法。

最基本的测试就是这样完成的:

这个想法是制作类似的东西:

如果我能摆脱 eval,那就太好了。为什么我不想将范围用作参数?因为您可能希望循环引用具有不同范围的 20 个函数的容器,并在循环中对它们进行全部测试,而不是手动编写这些东西。

0 投票
3 回答
9178 浏览

syntax - 匿名 Scala 函数语法

我正在了解有关 Scala 的更多信息,并且在理解http://www.scala-lang.org/node/135中的匿名函数示例时遇到了一些麻烦。我复制了下面的整个代码块:

我对 modN 函数的应用感到困惑

在示例中,它使用一个参数调用

modN(n: Int)(x: Int) 的语法是什么意思?

由于它是用一个参数调用的,我假设它们不是两个参数,但我无法真正弄清楚 mod 函数如何使用来自 nums 的值。

0 投票
3 回答
15693 浏览

javascript - 循环中的函数(返回另一个函数)如何工作?

我一直在尝试为onclickJavaScript 中动态创建的“a”标签的事件分配一个函数。所有标签都在一个循环中创建,如下所示:

所有四个链接的警报值始终为“4”。很明显。谷歌搜索时,我遇到了一个显示以下代码片段的帖子:

我设法根据我的需要对其进行了调整,并使 alert(i) 事情正常工作,但如果有人能准确解释上述代码的作用,我将不胜感激。

0 投票
4 回答
94043 浏览

c# - 在新线程上运行简单函数的最佳方法?

我有两个要在不同线程上运行的函数(因为它们是数据库的东西,并且不需要立即使用)。

功能是:

在 javascript 中,我知道我可以创建一个匿名函数并在一个新线程上很容易地调用它,如下所示:

C#中有这样的东西吗?

0 投票
2 回答
4983 浏览

scala - Scala:如何在 var 中“存储”一个函数?

我正在学习 Scala,我正在尝试将一个函数存储在一个 var 中以便稍后对其进行评估:

但这不会编译:

错误:类型不匹配;
找到:任何
必需的:() => 任何
操作 = 行动

所以在我看来,action = act不是分配函数,而是评估它并分配结果。
我不知道如何在不评估它的情况下分配函数。

谢谢!

0 投票
1 回答
479 浏览

javascript - 数组中的每个元素都同时递增,而应该只增加一个

我正在使用以下代码来增加围绕给定元素的二维数组中的元素。

然后我像这样运行它:

每次list[x][y].number++运行时,整个数组中的每个元素都会递增。有人可以解释为什么会这样吗?