繁体   English   中英

使用 functionName() 和仅使用 functionName 分配变量值有什么区别?

[英]What is the difference between assigning a variable value with functionName() and just functionName?

const heightOutput = document.querySelector('#height');
const widthOutput = document.querySelector('#width');

function reportWindowSize() {
  heightOutput.textContent = window.innerHeight;
  widthOutput.textContent = window.innerWidth;
}

window.onresize = reportWindowSize;

为什么不window.onresize = reportWindowSize() 这是 function 调用,我想触发它。 但是当我添加 () 它不起作用。

当您将语句设为reportWindowSize()时,它会调用 function reportWindowSize 调用后,它返回一些值,在这种情况下是undefined 因此, window.onresize将被赋值undefined

现在,让我们谈谈window.onresize 它是一个在某些事件发生时触发的事件处理程序,在这种情况下,当 window 大小更改时。 有关事件的更多信息:事件 API

这意味着,当调整 window 的大小时,一些本机代码将调用处理程序window.onresize ,例如window.onresize() 如果它undefined ,那么它将不起作用。 它必须是 function,因此我们要么将 function 的引用传递给它,这正是您正在做的,要么传递 function 值。 传递引用不会调用 function 而是将其指向您传递的 function。 最后,当事件被触发时,function reportWindowSize被调用。

一些可能有用的资源:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM