链式风格
先看一个元素的操作
window.jQuery = function (selector) {const elements = document.querySelectorAll(selector);// api 可以操作elementsconst api = {// 闭包: 函数访问外部的变量addClass(className) {for (let i = 0; i < elements.length; i++) {elements[i].classList.add(className);}return this;},};return api};const api = jQuery('.test') //不返回元素们,返回 api 对象api.addClass('red').addClass('blue')// api 调用 addClass 之后,返回值还是api;所以可以连续调用
优化代码
window.jQuery = function (selector) {const elements = document.querySelectorAll(selector);// api 可以操作elementsreturn {// 闭包: 函数访问外部的变量addClass(className) {for (let i = 0; i < elements.length; i++) {elements[i].classList.add(className);}return this;},};};jQuery('.test').addClass('red').addClass('blue')// 优化后
