问题标签 [first-class-functions]
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.
c# - 在 OOP 中覆盖方法与分配方法委托/事件
这是一个奇怪的 oop 问题。我想创建一组对象(在设计时已知),每个对象都有与之关联的某些功能。我可以通过提供可以包含“委托”的对象属性来做到这一点:
或者,我可以使用一个抽象类并为我要创建的每个对象实现它:
我意识到这两种方法的实际后果(在设计时创建与运行时创建)是完全不同的。
如何选择适合我的应用的方法?
actionscript-3 - Actionscript:ExternalInterface.addCallback() 究竟是如何工作的?
我对 ActionScript 很陌生,但对面向对象或一般的过程语言都不是新手。但是,ActionScript 对这两个类别的功能的特殊组合让我感到困惑。
具体来说,我对ExternalInterface.addCallback()的机制感到困惑。方法签名是:
特别感兴趣的是闭包参数,它具有以下文档:
closure:Function — 要调用的函数闭包。这可能是一个独立的函数,也可能是一个引用对象实例方法的方法闭包。通过传递方法闭包,您可以将回调指向特定对象实例的方法。
我认为上面的意思是闭包只是一个函数(不是方法),它可能是也可能不是包含来自实例化对象的方法调用的闭包。所以当我看到这样的代码(取自同一个文档页面)时,我会感到困惑:
上面的代码插入了 to addCallback
,一个非静态方法,ext_test
没有将它包装在一个包含实例化ex_test
对象的闭包中。
该方法包含一些琐碎的代码,但如果它有包含成员变量等的语句怎么办?当没有父对象时如何评估该方法?
此外,(因为addCallback
似乎允许传递任意方法)文档没有提及访问修饰符对传递的方法(如果有)的影响。如果我将方法标记为私有,我仍然可以将它传递给 addCallback 吗?这是怎么回事?
如果有人能帮我解决这个问题,我将不胜感激。
java - 一流的功能
所以我们有一个名为 Func.java 的接口,它看起来像这样:
然后我们有一个名为 mainClass.java 的主类,它看起来像这样:
我不太确定如何在 main 方法中调用这个 compose 方法,以及这段代码是如何编译的!我的意思是,这里是否需要 Java 泛型才能使其正常工作?
javascript - 在 JavaScript 中调用闭包时,输入闭包代码时是否会创建新的执行上下文?
注意下面的闭包示例:
调用虚拟变量绑定(将执行“bar”函数代码)时,是否创建了新的执行上下文?ECMAScript 规范指定了输入函数代码时会发生什么,但由于这是对函数/闭包的引用,我不确定它是否必须再次经历整个执行上下文创建/绑定阶段。
methods - 使用函数名作为参数
在 Go 中,您可以将函数作为参数传递,例如callFunction(fn func)
. 例如:
但是当它是结构的成员时可以调用函数吗?以下代码将失败,但为您提供了我正在谈论的示例:
(我知道我在那个例子中试图做的有点奇怪。我遇到的确切问题并没有很好地缩小到一个简单的例子,但这是我问题的本质。但是我也很感兴趣这是从学术角度来看的)
c# - 中断传递给 LINQ 函数的函数
我有一个传递给Select
. 但是当我在所述函数中设置断点时,程序不会中断。
例子:
java - 作为参数传递的对象的延迟初始化
假设我有一个方法需要很长时间才能创建一个对象,
我还有一个可以序列化和反序列化对象的辅助类,
我想要一个函数,它首先尝试加载由 指定的序列化对象filename
,但如果失败,则创建该对象default
。它可能看起来像这样:
conditionalCreate
现在编写函数的方式default
将始终被创建——我只想在default
必要时创建对象。
在另一种语言中,该conditionalCreate
函数可能如下所示:
此外,如果需要构造对象(如果反序列化失败),我想要一种将参数传递给此默认构造函数的方法。
在 Java 7 中这样的事情可能吗?
powershell - 在 PowerShell 中将函数(带参数)作为参数传递
我已经使用 ScriptBlocks 在 PowerShell 中成功地传递了无参数函数。但是,如果函数有参数,我无法让它工作。有没有办法在 PowerShell 中做到这一点?(最好是 v2)
然后
将 0 写入控制台。Apply 确实调用Add
,但不传递任何参数(即使用默认的 [int] 值 0 和 0)
scala - 将类型上的方法转换为类型的函数
是否可以将 T 类型的方法转换为 T 类型的函数?例如,如果我有
可以以某种方式将 foo 作为参数 somef 传递给
到目前为止,我已经把它从这样的类型中拉出来了:
但这并不是太干,甚至可以说是湿的。
scala - 我在 Scala 列表中添加了一个函数,现在如何删除它?
给定以下 Scala 代码:
我在缓冲区中添加了两个函数。现在,我如何删除一个?
buffer -= foo
不起作用,因为 foo 在任何比较之前被评估为布尔值。