封装一个函数
JS Bin
- code
- code
- code
- code
- code
var classes=['a','b','c']; '给 item3 添加class' // var classes=['a','b','c']; //用数组存储样式名字 // classes.forEach((value)=>item3.classList.add(value)) //遍历数组并将value 添加item3的class中 '既能添加又能删除'// var classes={ 'a':true,'b':false,'c':true};// for( key in classes){// var value=classes[key]// if (value) {// item3.classList.add(key)// } else{// item3.classList.remove(key)// }// } '封装' function addClass(node,classes){ for( key in classes){ var value=classes[key] if (value) { node.classList.add(key) } else{ node.classList.remove(key) } } } addClass(item3,{ 'a':true,'b':false,'c':true})复制代码
如果出现类似的代码就存在优化的可能
addClass函数优化后
function addClass(node,classes){ for( key in classes){ var value=classes[key] var methodName=value?'add':'remove' //对象调一种方法 1.obj.x() 2. object['x'] node.classList[methodName](key) // add/remove } }复制代码
命名空间
function getAllNode(node){ var allChildren=node.parentNode.children // item3 父节点 下的所有儿子 var box={length:0} //创建一个哈希 for (let i=0;i
给共有属性添加方法
Node.prototype.getAllNode=function getAllNode(node){ var allChildren=this.parentNode.children var box={length:0} for (let i=0;i