1、JS重载(个数不同,类型不同)
//设置单个P标签的单个样式 function prop(name,value){ var firstP = document.getElementById("p1"); firstP.style[name] = value; } prop("color","green"); prop("fontSize","38px");
//设置单个P标签的多个样式 function myProp(){ var firstP = document.getElementById("p1"); if(arguments.length == 1){ var temp = arguments[0]; for(p in temp){ firstP.style[p] = temp[p]; } }else if(arguments.length == 2){ firstP.style[arguments[0]] = arguments[1]; } } myProp({ color : "green", fontSize : "38px" });
//设置多个相同标签的多个样式 function Prop(){ var allP = document.getElementsByTagName("p"); for(var i = 0; i < allP.length; i++){ if(arguments.length == 1){ var temp = arguments[0]; if(allP instanceof Object){ for(p in temp){ allP[i].style[p] = temp[p]; } }else{ return allP[i].style[temp]; } }else if(arguments.length == 2){ allP.style[arguments[0]] = arguments[1]; } } } Prop({ color : "green", fontSize : "38px" });
//设置多个不同标签的多个样式 //定义一个对象 function MyObj(ele){ var e; this.eles = []; if(ele.indexOf("#") == 0){ e = document.getElementById(ele.replace("#","")); if(e != null) this.eles.push(e); }else{ e = document.getElementsByTagName(ele); if(e != null && e.length > 0){ this.eles = document.getElementsByTagName(ele); } } } //给对象添加一个设置元素样式的方法 MyObj.prototype.prop = function(){ if(arguments.length !=1 && arguments.length != 2){ return ; } var ele = this.eles; for(var i = 0; i < ele.length; i ++){ if(arguments.length == 1){ if(arguments[0] instanceof Object){ for(p in arguments[0]){ ele[i].style[p] = arguments[0][p]; } }else{ return ele[i].style[arguments[0]]; } }else{ ele[i].style[arguments[0]] = arguments[1]; } } } //创建一个对象 var my$ = function (ele){ return new MyObj(ele); } //调用方法 my$("p").prop("fontSize","30px"); my$("p").prop({backgroundColor : "red", color : "green"});
2、JS继承
对象继承
//继承一个父类 var child = {name : "张三"}; var parent = {age : 18}; function myExtends(cObject,pObject){ for(var p in pObject){ cObject[p] = pObject[p]; } return cObject; } var exChild = myExtends(child,parent); console.log(exChild);
//继承多个父类 var a = {name : "Rose"}; var b = {age : 20}; var c = {sex : "女"}; var d = {tel : 123}; function SuperExtends(){ var child = arguments[0]; for(var i = 1; i < arguments.length; i++){ var parent = arguments[i]; for(p in parent){ child[p] = parent[p]; } } return child; } console.log(SuperExtends(a,b,c,d));