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()
?它是函数调用,我想触发它。但是当我添加()时,它不起作用。
最佳答案
当您将语句声明为reportWindowSize()
时,它将执行函数reportWindowSize
。调用后,它返回一些值,在这种情况下为undefined
。因此,window.onresize
将被分配值undefined
。
现在,让我们谈谈window.onresize
。这是一个触发的事件处理程序
当某些事件发生时,在这种情况下,更改窗口大小时。有关事件的更多信息:Events API。
这意味着,当调整窗口大小时,某些 native 代码将像window.onresize
这样调用处理程序window.onresize()
。如果它是undefined
,那么它将无法正常工作。它必须是一个函数,因此我们要么传递函数的引用(正是您正在执行的操作),要么传递函数值。传递引用不会调用该函数,而是将其指向您正在传递的函数。最后,当事件被触发时,函数reportWindowSize
被调用。
一些资源可能会有所帮助: