gpt4 book ai didi

javascript - 函数调用和函数引用有什么区别?

转载 作者:行者123 更新时间:2023-12-03 01:54:38 25 4
gpt4 key购买 nike

我有以下功能

function hello() {
alert("hi!");
}

获取这段代码:

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

我的问题可能有点难以理解,所以请耐心等待:这段代码与普通调用有何不同,或者是什么使得这段代码需要对函数变量的引用而不是常规调用? (你好();)

我如何知道应该在哪里提供对该函数的引用,以及何时应该实际调用它?

最佳答案

好吧,onclick 属性需要一个对函数的引用,以便在单击元素时执行它。通常是:

element.onclick = funcRef;

element.onclick = function () {
funcRef();
};

(当然,最好使用 addEventListenerattachEvent)

注意它们都是对函数的引用,而不是调用。

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

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

可能是更重要的部分:

有些人认为你想这样做:

element.onclick = funcRef();

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

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

关于javascript - 函数调用和函数引用有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15886272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com