当前位置: 首页 > news >正文

惰性加载函数(js的问题)

在web开发中,因为浏览器之间的实现差异,一些嗅探工作总是不可避免。

var addEvent = function( elem, type, handler ){if ( window.addEventListener ){return elem.addEventListener( type, handler, false );}if ( window.attachEvent ){return elem.attachEvent( 'on' + type, handler );}};

这个函数的缺点是,当它每次被调用的时候都会执行里面的if条件分支。
下面这个函数虽然仍然有一些分支判断,但是在第一次进入条件分支之后,在函数内部就会重写这个函数,重写之后的函数就是我们希望的addEvent函数。

  var addEvent = function(ele,type,handler){if(window.addEventListener){addEvent = function(ele,type,handler){elem.addEventListener( type, handler, false );}}if(window.attachEvent){addEvent = function(ele,type,handler){elem.attachEvent( 'on' + type, handler );}}addEvent(ele,type,handler);}

http://www.lryc.cn/news/261327.html

相关文章:

  • jmeter,读取CSV文件数据的循环控制
  • 移植LVGL到像素屏,从此玩转像素屏0门槛
  • stateflow 之图函数、simulink函数和matlab函数使用及案例分析
  • C# 加载本地文件设置应用程序图标
  • 苹果计划将全球1/4的IPhone产能转移至印度
  • el-date-picker 选择一个或多个日期
  • 5个创建在线帮助文档的好方法!
  • 听GPT 讲Rust源代码--src/tools(14)
  • arcgis api for js 中使用API的代理页面(跨越配置)
  • Unity_FairyGUI发布导入Unity编辑器资源报错
  • 1.5【应用开发】缓冲区(二)
  • RTMP流设置超时时间失败
  • 如何一步步让MySQL支撑亿级流量
  • MFC CLXHHandleEngine动态库-自定义设置对话框使用
  • Python生成器(Generator)(继续更新...)
  • Spring Boot 3 整合 Mybatis-Plus 动态数据源实现多数据源切换
  • 快速学习C++中的模板
  • Pandas-DataFtame的索引与切片(第3讲)
  • MySQL低版本中:字符串中的数字、英文字符、汉字提取
  • 多窗口文件管理工具Q-Dir安装以及使用教程
  • Spring入门
  • Linux——进程创建与进程终止
  • 轻量封装WebGPU渲染系统示例<50>- Json数据描述材质等场景信息
  • AtCoder ABC周赛2023 12/10 (Sun) D题题解
  • 基于C/C++的rapidxml加载xml大文件 - 上部分翻译
  • 小程序使用Nodejs作为服务端,Nodejs与与MYSQL数据库相连
  • 深度解读 Cascades 查询优化器
  • Bash 操作审计和安全加固 —— 筑梦之路
  • C/C++常见面试知识总结(三)
  • AR眼镜_AR智能眼镜整机硬件方案定制