JS中把函数作为另一函数的参数传递方法(总结)

发布时间 - 2026-01-11 02:05:08    点击率:

今天在给元素注册事件的时候,使用addEventListener遇到了一个问题,这个好像之前也遇到过,觉得有必要总结一下,就是js函数作为参数引发的问题。首先看以下代码,觉得下面代码有问题吗?是否能达到点击id3对应的元素后,弹出id3呢?

例1

var obj3=document.getElementById('id3'); 
obj3.addEventListener('click',curClick('id1'),true); 
function curClick(id){ 
    alert(id); 
} 

答案是否定,不能达到我想要的效果,因为这行代码在页面加载完成时候,就会弹出id3。当我单击id3对应的元素时候,页面没有任何反应。

于是我将代码改为如下两种情况:

例2

var obj3=document.getElementById('id3'); 
  obj3.addEventListener('click',function(e){curClick('id3');stopPropagation(e)},true); 
 
  function curClick(id){ 
    alert(id); 
  } 

例3

var obj1=document.getElementById('id1');  
obj1.addEventListener('click',curClick1,true); 
function curClick1(){ 
 alert('okey'); 
} 

这次执行正常了,这是为什么呢?

因为在JS世界里curClick('id3')就是直接调用curClick('id3'),而非将其作为一个参数来传递,如果要将其作为一个参数来传递,如果不需要传递参数,直接传递函数名就可,如果需要传递参数,有两种解决办法

方法一:借助匿名函数,将要传递的函数,放在匿名函数中,将匿名函数作为参数如例2

eg:将function(){myfunction(val1,val2,......);}作为参数传递。

第二:改写需要传递函数

function curClick1(val){ 
<span style="white-space:pre">  </span>return function(){ 
    alert(val); 
  }; 
} 

以上这篇JS中把函数作为另一函数的参数传递方法(总结)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# 把函数作为参数传递  # JavaScript函数的调用以及参数传递  # javascript自定义函数参数传递为字符串格式  # JavaScript函数参数的传递方式详解  # js的函数的按值传递参数(实例讲解)  # javascript arguments 传递给函数的隐含参数  # JS函数动态传递参数的方法分析【基于arguments对象】  # 通过实例了解js函数中参数的传递  # 浅谈JavaScript 函数参数传递到底是值传递还是引用传递  # javascript函数中参数传递问题示例探讨  # js中对函数设置默认参数值的3种方法  # 深入理解JavaScript函数参数(推荐)  # JS函数参数的传递与同名参数实例分析  # 给大家  # 弹出  # 作为一个  # 这是  # 就会  # 放在  # 不需要  # 没有任何  # 两种  # 当我  # 将其  # 希望能  # 就可  # 我将  # 有必要  # 什么呢  # 一个问题  # 要将  # 这篇  # 有两种 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何挑选优质建站一级代理提升网站排名?  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  zabbix利用python脚本发送报警邮件的方法  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  C++时间戳转换成日期时间的步骤和示例代码  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  如何在建站之星网店版论坛获取技术支持?  手机软键盘弹出时影响布局的解决方法  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  JavaScript数据类型有哪些_如何准确判断一个变量的类型  移动端脚本框架Hammer.js  Laravel集合Collection怎么用_Laravel集合常用函数详解  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  手机网站制作与建设方案,手机网站如何建设?  网站制作壁纸教程视频,电脑壁纸网站?  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  HTML 中如何正确使用模板变量为元素的 name 属性赋值  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  如何在Windows 2008云服务器安全搭建网站?  如何在云虚拟主机上快速搭建个人网站?  香港服务器选型指南:免备案配置与高效建站方案解析  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  googleplay官方入口在哪里_Google Play官方商店快速入口指南  做企业网站制作流程,企业网站制作基本流程有哪些?  php 三元运算符实例详细介绍  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  JavaScript如何实现音频处理_Web Audio API如何工作?  如何在香港服务器上快速搭建免备案网站?  在Oracle关闭情况下如何修改spfile的参数  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  Python文件流缓冲机制_IO性能解析【教程】  公司网站制作需要多少钱,找人做公司网站需要多少钱?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  Swift中switch语句区间和元组模式匹配  如何在阿里云部署织梦网站?  在线制作视频的网站有哪些,电脑如何制作视频短片?  HTML 中动态设置元素 name 属性的正确语法详解  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  浅析上传头像示例及其注意事项  进行网站优化必须要坚持的四大原则