【笔记 + 总结】 JQuery就是一个class, JQuery源码分析

307 阅读1分钟

class JQuery {
  constructor(selector) {
    let slice = Array.prototype.slice
    let dom = slice.call(document.querySelectorAll(selector)) // 获取dom节点,slice.call使它变成数组
    let len = dom ? dom.length : 0
    for (let i = 0; i < len; i++) {
      this[i] = dom[i]
    }
    this.length = len
    this.selector = selector || ''
  }
  append(node) {}
  addClass(className) {}
  html(data) {}
  // ...
}

window.$ = function (selector) {
  // 工厂模式
  return new JQuery(selector)
}

// 测试代码
var $p = $('p')
console.log($p)
console.log($p.html)

这样就简单的实现了一个JQuery