簡單技巧創(chuàng)建JS的鏈式調用, 相信很多人都知道,jQuery的鏈式調用用起來非常的爽,就像下面這樣,把自己需要用的方法串聯(lián)起來,一條語句就可以完成多個動作:
jquery代碼:
$("div").addClass("newClass").text("Hello").show();
上面的語句為div元素添加了名為"newClass"的CSS class,把內容改為"Hello",最后將其顯示出來,非常的方便簡潔。
下面我們也來創(chuàng)建自己的鏈式調用(由于本文只是說明如何實現(xiàn)鏈式調用,為了簡單起見,我們將只支持id選擇器),最后你會發(fā)現(xiàn),實現(xiàn)鏈式調用是非常簡單的事情,唯一需要做的就是在每個方法后面返回this。
(function(){
function _$(id){
this.ele = document.getElementById(id);
}
_$.prototype = {
setColor : function(c){
this.ele.style.color = c;
return this; // Important
},
setBold : function(){
this.ele.style.fontWeight = "bold";
return this; // Important
}
/** 更多方法 **/
}
window.$ = function(id){
return new _$(id);
}
})();
說明:在上面的例子中,我們創(chuàng)建了一個閉包,同樣使用了$的命名空間,作為唯一提供給外部訪問的$函數,它返回一個內部構造器_$的實例化對象,通過prototype實現(xiàn)了 setColor 和 setBold 方法,在每次調用這些方法時都會返回當前對象,于是返回的對象同樣再次具有在prototype中定義的各種方法,這就是鏈式調用的唯一訣竅,就這么簡單。
如果一切順利,下面的語句將被成功執(zhí)行,它會將id為 test 的元素設置為紅色并加粗。
$('test').setColor("red").setBold();
更多信息請查看IT技術專欄