1. jQuery接受一个字符串
2.拿到这个字符串nodeOrSelector
3.分析这个字符串,是字符串还是个节点
如果是字符串,就去找到对应的所有元素,遍历之后放到伪数组里

如果是节点,就把节点放到伪数组里面

4.这时候外面调用 addClass ,就会去遍历这个classes,逐个放到伪数组的每一项元素里面

5. text这个函数,如果你传参数就是设置,不传参数就是获取。

总体是这样的一个逻辑:
你可以给我一个选择器,也可以给我一个节点,把找到的结果放到nodes里面,
你要用nodes时,在addClass api里用,这样你就可以调用addClass了,不是操作node2,而是操作nodes
node2就是函数的返回值nodes,其实就是

贴代码:
window.jQuery = function(nodeOrSelector){
let node = {}
if(typeof nodeOrSelector === 'string'){
let temp = document.querySelectorAll(nodeOrSelector)
for (let i = 0; i < temp.length; i++) {
nodes[i] = temp[i]
}
nodes.length = temp.length
}else if(nodeOrSelector instanceof Node){
nodes = {
0: nodeOrSelector,
length: 1
}
}
nodes.setText = function(text){
if(text === undefined){
var texts = []
for (let i = 0; i < nodes.length; i++) {
texts.push(nodes[i].textContent)
}
return texts
}else{
for (let i = 0; i < nodes.length; i++) {
nodes[i].textContent = text
}
}
},
nodes.addClass = function(classes){
classes.forEach(value => {
for(let i = 0; i < nodes.length; i++){
nodes[i].classList.add(value)
}
})
}
return nodes
}
window.$ = jQuery
var $div = $('div')
$div.addClass('red') // 可将所有 div 的 class 添加一个 red
$div.setText('hi') // 可将所有 div 的 textContent 变为 hi