Javascript - 将函数作为参数传递

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript - 将函数作为参数传递相关的知识,希望对你有一定的参考价值。

道歉,我找不到一个有效的解决方案,尽管有类似的问题被问及解答。

我有一个用openModal()打开的模态,它在右上角有一个关闭按钮。当我单击关闭时,我想要一个函数来运行,具体取决于已经传递的参数。

function openModal(onclose){
    //insert modal
    var modal = document.createElement('div');
    body.appendChild(modal);

    //insert close button
    var modalClose = document.createElement('span');
    modalClose.innerhtml = 'Χ'
    modalClose.classList.add('modalClose');
    modal.appendChild(modalClose);

    //call default function on click of close button
    modalClose.addEventListener("click", closeModal);


    //call custom function on click of close button
    if(beforeclose !== undefined){
        modalClose.addEventListener("click", onclose);
}

然后我会调用类似openModal('refreshPage()')的东西,其中refreshPage只会在单击关闭按钮时运行。

感谢您提供给我的任何帮助 - 我应该说我已经尝试在addeventlistener中使用eval,它只是立即运行它,然后单击按钮时也是如此。

答案

element.addEventListener(onclose, function(){ closeModal(refreshPage); });

然后你可以像这样设计你的closeModal函数:

function closeModal(func){
   func();
}

函数的引用是没有()的变量形式:

  • function foo()通过foo引用
  • function getData()通过getData引用
  • function bar(); const barr = bar通过barbarr引用

以上是关于Javascript - 将函数作为参数传递的主要内容,如果未能解决你的问题,请参考以下文章

将 JavaScript 函数作为参数传递

JavaScript 高阶函数

Javascript - 将函数作为参数传递

如何将数据库列值作为 JavaScript 函数的参数传递?

如何将对象属性作为参数传递? (JavaScript)

javascript 使用解构分配将对象作为函数的参数传递