简单技巧创建JS的链式调用, 相信很多人都知道,jQuery的链式调用用起来非常的爽,就像下面这样,把自己需要用的方法串联起来,一条语句就可以完成多个动作:
jquery代码:
$("div").addClass("newClass").text("Hello").show();
上面的语句为div元素添加了名为"newClass"的CSS class,把内容改为"Hello",最后将其显示出来,非常的方便简洁。
下面我们也来创建自己的链式调用(由于本文只是说明如何实现链式调用,为了简单起见,我们将只支持id选择器),最后你会发现,实现链式调用是非常简单的事情,唯一需要做的就是在每个方法后面返回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);
}
})();
说明:在上面的例子中,我们创建了一个闭包,同样使用了$的命名空间,作为唯一提供给外部访问的$函数,它返回一个内部构造器_$的实例化对象,通过prototype实现了 setColor 和 setBold 方法,在每次调用这些方法时都会返回当前对象,于是返回的对象同样再次具有在prototype中定义的各种方法,这就是链式调用的唯一诀窍,就这么简单。
如果一切顺利,下面的语句将被成功执行,它会将id为 test 的元素设置为红色并加粗。
$('test').setColor("red").setBold();
中国足彩网信息请查看IT技术专栏