我有以下功能
function hello() {
alert("hi!");
}
这段代码:
var elem = document.getElementById("btn");
elem.onclick = hello;
我的问题可能有点难以理解,所以请忍受:是什么使该代码段与常规调用完全区分开,或者是什么使该代码段需要引用函数变量而不是常规调用?(hello();
)
我怎么知道应该在哪里引用该函数,以及什么时候该真正调用它?
好吧,该onclick
属性期望对函数的引用,以便在单击元素时执行该函数。通常是:
element.onclick = funcRef;
要么
element.onclick = function () {
funcRef();
};
(但是,当然,最好使用addEventListener
和attachEvent
)
请注意,它们都是如何引用函数而不是调用。
当某些东西需要引用时,您不会调用它…而是为其分配引用(第一个示例)。
当您要专门调用一个函数时,可以使用()
(第二个示例)进行调用。但是请注意,在第二个示例中,仍然有对分配给该函数的引用onclick
-它只是一个匿名函数。
可能更重要的部分是:
有人认为您想这样做:
element.onclick = funcRef();
但这会立即执行该函数(由于()
),并将其返回值分配给onclick
。除非返回值 是 一个函数,否则这不是您想要的。
我认为这个故事的寓意是,当您希望/需要立即执行某项操作时,可以调用该函数。如果需要该函数供以后使用或需要存储,则不要调用它。
问题内容: 我一直在阅读iBooks中的快速编程指南。有人可以向我解释函数和闭包之间的区别是什么。只是它没有名称并且可以在表达式中使用? 问题答案: 函数实际上只是命名为闭包。以下至少在概念上是等效的: 在使用声明方法的情况下,这变得有些复杂,例如,关于自动插入公共命名参数等,添加了一些有趣的糖,例如,变为`func myMethod(foo:Int, #bar:Int, 但是,即使方法只是闭包的
问题内容: OpenAI的强化学习的REINFORCE和actor-critic示例具有以下代码: 加强: 演员评论家: 一种正在使用,另一种正在使用。 据我所知,文档没有对它们之间进行任何明确的区分。 我很高兴知道这些功能之间的区别。 问题答案: 沿着 新的维度 连接张量序列。 在给 定维度上 连接给定序列张量的序列。 因此,如果和具有形状(3,4),则将具有形状(6,4),并将具有形状(2,3
问题内容: 我一直以为功能和方法是相同的,直到我通过“ Swift编程语言”电子书学习Swift 之前。我发现我 不能greet(“John”, “Tuesday”)用来调用在类中声明的函数, Here is the code:- 当我在Objective-C中编程时,我从未意识到这种差异。 Swift中的函数和方法之间有什么区别? 在Swift中什么时候使用函数以及何时使用方法? 问题答案: 经
问题内容: 我对python级别的函数和常规函数(用定义)之间的差异感到好奇。(我知道对程序员有什么区别,以及何时使用每个程序员。) 如我们所见-python 知道 这是一个函数,并且是一个常规函数。这是为什么?它们 与python有 什么区别? 问题答案: 它们是同一类型,因此它们的处理方式相同: Python还知道将其定义为lambda函数,并将其设置为函数名称: 换句话说,它影响了该函数将获
我正在使用静态编程语言反应器(Mono和Flux),我想知道使用(来自kotlin-coroutines-reactive)函数和(来自React)之间的区别。我带来了两个例子来展示我正在努力做的事情。 示例1(具有等待功能): 输出:带有IllegalStateException堆栈跟踪的“错误”。 示例2(具有订阅功能): 输出:只是“错误”。 为什么示例1显示堆栈跟踪而示例2不显示? 谢谢
问题内容: 斯威夫特有: 强引用 参考文献薄弱 无人参考 无主引用与弱引用有何不同? 什么时候可以使用无主引用安全? 无主引用是否像C / C ++中的悬空指针一样具有安全风险? 问题答案: 双方并引用不创建一个被引用的对象上保持(又名它们不会取消分配引用的对象增加,为了保留计数,以防止电弧)。 但是为什么要两个关键词呢?这种区别与类型内置在Swift语言中这一事实有关。长话短说:可选类型提供了内