class jQuery {
constructor(selector) {
const result = document.querySelectorAll(selector)
console.log(result)
const length = result.length
for (let i = 0; i < length; i++) {
this[i] = result[i]
}
this.length = length
}
get(index) {
return this[index]
}
each(fn) {
for (let i = 0; i < this.length; i++) {
const ele = this[i]
fn(ele)
}
}
on(type, fn) {
return this.each(ele => {
ele.addEventListener(type, fn, false)
})
}
} //考虑扩展性
//插件
jQuery.prototype.dialog = function (info){
alert(info)
}
//复写机制
class MyJQuery extends jQuery{
constructor(selector){
super(selector)
}
addClass(className){}
style(data){}
} //使用
const jq = new jQuery('p')
console.log(jq.get(0))
jq.each(function(el){
console.log(el)
})
jq.on('click',function(el){
console.log(el)
})

考点:

  • 原型和原型链的理解
  • dom操作

最新文章

  1. qt qml qchart 图表组件
  2. hihocoder1241 Best Route in a Grid
  3. JAVA利用Zip4j解压缩【转】
  4. paip. uapi 过滤器的java php python 实现aop filter
  5. CSS和JS实现单行、多行文本溢出显示省略号(该js方法有问题不对)
  6. [原]NYOJ 括号匹配系列2,5
  7. dubbo注册服务IP解析异常及IP解析源码分析
  8. Windows 8和CentOS 6.4(64)双系统硬盘安装教程
  9. cad 画 tp图
  10. margin 属性的相关问题
  11. 201521123113 《Java程序设计》第3周学习总结
  12. [编织消息框架][netty源码分析]12 ByteBuf 实现类UnpooledDirectByteBuf职责与实现
  13. Gradle 1.12用户指南翻译——第二十三章. Java 插件
  14. mysql插件的初始化
  15. cf166e 在四面体上寻找路线数 递推,取模
  16. Bukkit插件编程中.yml配置文件的创建和读取
  17. Linux环境下的Scala环境搭建
  18. .NetCore 使用 Linq 动态拼接Expression表达式条件来实现 对EF、EF Core 扩展查询排序操作
  19. double 和 im2double 的区别
  20. CentOS7修复python拯救yum - 转载

热门文章

  1. c# 反射实现模型深拷贝
  2. Spring注解简析
  3. 那些年踩过的坑---java篇
  4. Casbin入选2022 Google编程之夏
  5. 基于pytorch实现Resnet对本地数据集的训练
  6. ASP.NET Core框架探索之Authorization
  7. Spring Boot 自定义Starter 可能引发的问题(Error)
  8. ubuntu21.10搭建jenkins和gitlab自动化部署环境
  9. J20航模遥控器开源项目系列教程(五)| 制作STM32F0接收机,8路PWM输出,SBUS输出,PPM输出 | 加密狗无线化,畅玩飞行模拟器
  10. 查找bug的一些经验总结