javascript设计模式----访问者模式

访问者模式:针对于对象结构中的元素,定义在不改变改对象的前提下访问结构中元素的新方法。
解决事件回调函数中对改元素的访问问题。
实现的核心,调用call或者apply
场景:用dom2级事件为页面中的元素绑定事件

var bindEvent = function(dom,type,fn){if(dom.addEventListener){dom.addEventListener(type,fn,false);}else if(dom.attachEvent){dom.attachEvent('on'+type,fn);}else{dom['on'+type] = fn;}
}
var demo = document.getElementById('demo')
bindEvent(demo,'click',function(){this.style.background = 'red';//ie下attachEvent事件中this指向的是window
}

在标准浏览器运行时不会出错,但在低版本ie下运行不成功,原因在于低版本ie中,attachEvent事件中this指向的不是这个元素,而是window,如果想获取到事件对象,应该通过window.e来获取。
解决方法,我们通过访问者模式解决,主要用到call方法,将回调函数访问的this指代我们的事件源对象。由于W3C给我们定义事件绑定的回调函数内部职能有一个参数对象供我们访问(事件对象e),我们可以通过向call方法添加data参数,以达到将数据传入到事件回调函数的目的。

function bindIEEvent(dom,type,fn,data){var d

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/820679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新零售门店、商品、会员管理指标体系总览

新零售,旨在打破传统零售业的边界,引入先进科技和数字化手段,通过整合线上线下渠道,全面提升用户体验,并实现更智能、高效、个性化的零售运营模式。这一模式不仅仅关注销售产品,更注重构建全方位的购物生态…

《中医临床诊疗术语》数据库

最新版的《中医临床诊疗术语》于2023年3月17日由国家中医药管理局提出的,由国家市场监督管理总局和国家标准化管理委员会共同发布。新版的修订是为落实相关政策文件要求,推进中医医疗服务规范化、标准化管理,提高中医医疗服务标准化水平和管理…

asyncio异步编程

参考视频:02 协程_哔哩哔哩_bilibili 1.协程:(不是计算机中真实存在的,人为创造出的概念),也可称为微线程。 本质是用一个线程在一段代码中来会切换游走的线程,是一种用户态内的上下文切换技术…

中科驭数:DPU是构建高效智算中心基础设施的必选项

4 月 15 日,在江苏省未来网络创新研究院、网络通信与安全紫金山实验室举办的“2024智算网络技术与应用创新峰会”上,中科驭数作为DPU算力基础设施领军企业,受邀出席本次峰会。中科驭数产品运营部副总经理曹辉先生在《基于DPU的高效智算中心算…

OpenCV与AI深度学习 | 2024年AI初学者需要掌握的热门技能有哪些?

本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。 原文链接:2024年AI初学者需要掌握的热门技能有哪些? 0 导 读 本文主要介绍2024年AI初学者需要掌握的热门技能。 1 前 言 人工智能无疑是技…

数据分析业务——二八定律

二八定律 转载:百度百科 二八定律也叫巴莱多定律,是19世纪末20世纪初意大利经济学家巴莱多发明的。他认为,在任何一组东西中,最重要的只占其中一小部分,约20%,其余80%的尽管是多数,却是次要的&…

基于java+springboot+vue实现的智慧党建系统(文末源码+Lw+ppt)23-58

摘 要 当今社会进入了科技进步、经济社会快速发展的新时代。国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统智慧党建管理采取了人工的管理方法,但这种管…

openGauss学习笔记-264 openGauss性能调优-TPCC性能调优测试指导-BIOS配置

文章目录 openGauss学习笔记-264 openGauss性能调优-TPCC性能调优测试指导-BIOS配置264.1 恢复BIOS出厂设置264.2 修改相关BIOS设置264.3 重启操作系统 openGauss学习笔记-264 openGauss性能调优-TPCC性能调优测试指导-BIOS配置 本章节主要介绍openGauss数据库内核基于鲲鹏服务…

repo 管理多个git仓库

当repo init时,执行的repo是环境变量里面默认的repo,这个repo只是单纯一个几百行的Python脚本 而不是完整的repo-project,所以要先去网络远端sync完整的repo-project, 因为repo也是开源项目,设计者出于维护和使用体验&…

BTI功能验证与异常解析

BTI分支目标识别精讲与实践系列 思考 1、什么是代码重用攻击?什么是ROP攻击?区别与联系? 2、什么是JOP攻击?间接分支跳转指令? 3、JOP攻击的缓解技术?控制流完整性保护? 4、BTI下的JOP如何…

【MATLAB源码-第53期】m代码基于粒子群算法(PSO)的三维路径规划,显示最优路径和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 粒子群算法(Particle Swarm Optimization,简称PSO)是一种模拟鸟群觅食行为的启发式优化方法。以下是其详细描述: 基本思想: 鸟群在寻找食物时,每只鸟都…

机器学习实验------随机森林

第1关:Bagging 任务描述 本关任务:补充 python 代码,完成 BaggingClassifier 类中的 fit 和 predict 函数。请不要修改 Begin-End 段之外的代码。 import numpy as np from collections import Counter from sklearn.tree import DecisionT…

【开发篇】十三、JVM基础参数设置与垃圾回收器的选择

文章目录 1、-Xmx 和 –Xms2、-XX:MaxMetaspaceSize 和 –XX:MetaspaceSize3、-Xss4、不建议改的参数5、其他参数6、选择GC回收器的调试思路7、CMS的并发模式失败现象的解决8、调优案例 GC问题解决方式: 优化JVM基础参数,避免频繁Full GC减少对象的产生…

ADB的基本语法及常用命令

学习网址 ADB命令的基本语法如下&#xff1a; adb [-d|-e|-s <serialNumber>] <command> 如果有多个设备/模拟器连接&#xff0c;则需要为命令指定目标设备。 参数及含义如下&#xff1a; 常用命令如下&#xff1a; 1. 启动ADB服务 adb start-server 2. 停止…

JavaScript入门--数组

JavaScript入门--数组 前言数组的操作1、在数组的尾部添加元素2、删除数组尾部的元素&#xff0c;也就是最后一个元素3、删除头部第一个元素4、在数组的前面添加元素 小案例5、数组的翻转6、数组的排序7、数组的合并8、数组的切片 前言 JS中的数组类似于python中的列表&#x…

人工智能揭示矩阵乘法的新可能性

人工智能揭示矩阵乘法的新可能性 数学家酷爱漂亮的谜题。当你尝试找到最有效的方法时&#xff0c;即使像乘法矩阵&#xff08;二维数字表&#xff09;这样抽象的东西也会感觉像玩一场游戏。这有点像尝试用尽可能少的步骤解开魔方——具有挑战性&#xff0c;但也很诱人。除了魔方…

政安晨:【深度学习神经网络基础】(九)—— 在深度学习神经网络反向传播训练中理解梯度

目录 简述 理解梯度 什么是梯度 计算梯度 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 简述 在深度…

springboot源码解析(三):springboot内嵌tomcat

springboot源码解析(三)&#xff1a;springboot内嵌tomcat ​ 在使用springboot搭建一个web应用程序的时候&#xff0c;我们发现不需要自己搭建一个tomcat服务器&#xff0c;只需要引入spring-boot-starter-web,在应用启动时会自动启动嵌入式的tomcat作为服务器&#xff0c;下…

SQL SERVER的安装

目录 1.百度SQL SERVER找到图下的所显示的&#xff0c;点击进去 2.找到图下红色框起来的&#xff0c;点击立即下载​ 3.下载好之后点开&#xff0c;选择下载介质 4.SQLSERVER下载成功之后选择打开文件夹​ 6.双击后缀名是.iso的镜像文件 7.双击setup.exe进行安装​ 8.安…

BTI性能开销权衡及优化措施

BTI分支目标识别精讲与实践系列 思考 1、什么是代码重用攻击&#xff1f;什么是ROP攻击&#xff1f;区别与联系&#xff1f; 2、什么是JOP攻击&#xff1f;间接分支跳转指令&#xff1f; 3、JOP攻击的缓解技术&#xff1f;控制流完整性保护&#xff1f; 4、BTI下的JOP如何…