今天介紹一下怎么寫屬于自己的插件,建議看之前溫習(xí)一下面向?qū)ο螅?br> 我就寫個(gè)簡單的重置樣式的插件册赛,話不多說先上代碼;
//SetStyles.js
(function(win, doc) {
var defaultSettings = {
color: "red",
background: "blue",
border: "2px solid #000",
fontSize:"30px",
textAlign:"center",
width:"200px",
borderRadius:"5px"
};
function SetStyles(options) {
var self = this;
//沒傳配置項(xiàng)自己丟錯(cuò)
if(!options) {
throw new Error("請傳入配置參數(shù)");
}
self = Object.assign(self, defaultSettings, options);
self.container = doc.querySelector(self.container) || doc.querySelectorAll(self.container);
self._changeStyles();
}
SetStyles.prototype = {
_changeStyles: function() {
var self = this;
for(var pro in self) {
if(pro == "container") {
continue;
}
if(pro == 'text' && typeof self[pro]== 'string') {
self.container.innerText = self[pro];
continue;
}else if(pro == 'text' && typeof self[pro]== 'function'){
self.container.innerText = self[pro]();
continue;
}
self.container.style[pro] = self[pro];
}
}
}
win.SetStyles = SetStyles;
})(window, document)
//調(diào)用
var a = new SetStyles({
container:"#test",
background:"#fff",
textAlign:"center",
text:function(){
return "我是文本";
}
});
//text參數(shù)格式字符串或者函數(shù)
//container用的querySelectAll方法,參數(shù)一致
//其他css參數(shù)為字符串
我的這份代碼應(yīng)該足夠簡單扼睬,看不懂的說明基礎(chǔ)還不夠哦悴势,自己敲一敲,有問題的地方,自己console.log一下吧特纤。
首先定義下一默認(rèn)的參數(shù)defaultSettings
然后寫個(gè)構(gòu)造函數(shù),里面為什么要用Object.assign合并對象粪躬,因?yàn)槟J(rèn)配置里有的你不一定全都寫昔穴,不寫的就默認(rèn)為默認(rèn)參數(shù),有的就選擇你寫的參數(shù)朋魔,所以options放在后面卿操;
最后把方法寫在原型里。
方法一般寫在原型里扇雕,屬性寫在構(gòu)造函數(shù)里。
大家應(yīng)該都能看的懂這段代碼的功能镶奉,重置css樣式哨苛,和jquery的css()函數(shù)類似。
但是不推薦大家用這個(gè)玻侥,畢竟遵循原則亿蒸,盡量少用js去操作dom,畢竟這種代價(jià)是很昂貴的姑食,我寫這個(gè)只是為了讓大家了解一下如何封裝插件音半,要去更改css樣式灰蛙,不如多寫幾個(gè)類,要用那種樣式物延,換個(gè)類名就行仅父。