函数调用和函数引用之间有什么区别?

我有以下功能

function hello() {

alert("hi!");

}

这段代码:

var elem = document.getElementById("btn");

elem.onclick = hello;

我的问题可能有点难以理解,所以请忍受:是什么使该代码段与常规调用完全区分开,或者是什么使该代码段需要引用函数变量而不是常规调用?(hello();

我怎么知道应该在哪里引用该函数,以及什么时候该真正调用它?

回答:

好吧,该onclick属性期望对函数的引用,以便在单击元素时执行该函数。通常是:

element.onclick = funcRef;

要么

element.onclick = function () {

funcRef();

};

(但是,当然,最好使用addEventListenerattachEvent

请注意,它们都是如何引用函数而不是调用。

当某些东西需要引用时,您不会调用它…而是为其分配引用(第一个示例)。

当您要专门调用一个函数时,可以使用()(第二个示例)进行调用。但是请注意,在第二个示例中,仍然有对分配给该函数的引用onclick-它只是一个匿名函数。

有人认为您想这样做:

element.onclick = funcRef();

但这会立即执行该函数(由于()),并将其返回值分配给onclick。除非返回值 一个函数,否则这不是您想要的。

我认为这个故事的寓意是,当您希望/需要立即执行某项操作时,可以调用该函数。如果需要该函数供以后使用或需要存储,则不要调用它。

以上是 函数调用和函数引用之间有什么区别? 的全部内容, 来源链接: utcz.com/qa/416169.html

回到顶部