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辅助功能视觉效果设置
浅析上传头像示例及其注意事项
进行网站优化必须要坚持的四大原则

