gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 15:16:27 26 4
gpt4 key购买 nike

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被调用。
一些可能有用的资源:

  • Functions in javascript
  • First-class Function
  • 关于javascript - 使用 functionName() 和仅使用 functionName 分配变量值有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62609812/

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