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
通过bar
或barr
引用
以上是关于Javascript - 将函数作为参数传递的主要内容,如果未能解决你的问题,请参考以下文章