函数调用和函数引用之间有什么区别?
我有以下功能
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
。除非返回值 一个函数,否则这不是您想要的。
我认为这个故事的寓意是,当您希望/需要立即执行某项操作时,可以调用该函数。如果需要该函数供以后使用或需要存储,则不要调用它。
以上是 函数调用和函数引用之间有什么区别? 的全部内容, 来源链接: utcz.com/qa/416169.html