封装一个函数:
传入value 返回一个你想得到的值或者对象
第二部: 声明一个类似Node的对象 把函数当做属性放入到这个对象中
然后通过 ffdom.getSiblings() ffdom.addClass() 调用函数
那这些函数放到一个对象里 然后通过想调用属性的方式来调用这些函数给这个对象取个名字 就叫做命名空间
在这个方法中 你需要先声明 两个全局对象(函数) 这就很容易导致你一不小心就把别人声明的对象覆盖了
这时需要下面变形 先声明一个全局对象 然后通过 obj.xxx的方式 写入属性再让这个属性 等于一个函数( function(){})这样 这两个函数就只是你声明的全局对象里面的两个属性
同样的 我们能不能把这些方法加入到Node原型链中呢 看下面这种变形
给Node的公有属性添加一个方法 任何node都可以通过这个方法访问这个函数
那么问题来了 我们怎么让函数 获取到我们这个节点呢 用this
item.getSiblings() 等价于item.getSiblings.call(item)这里的this 就是绑定这个方法的节点对象
这样又出现了一个老问题了 万一你把 Node里的函数覆盖了呢 我们可以通过下面方法解决
创造一个node2 然后调用Node
实现 getSiblings
上面的代码 我们只能操作一个节点 如果我要要操作多个节点呢看下面代码
思路 :判断传入的节点 到底是一个还是多个 不管是什么样的 我们都把传入的节点 放入已经声明好的空对象中 如果是多个节点那么 他本身就是个伪数组 但是为了确保数组的纯净性我们需要遍历节点数组把每一项拿出来放入我们的数组中然后我们再写一个函数 同样放入到数组中