js链式调用的原理

今天上班不是很忙,感觉自己写的代码没有规范性和复用性,仔细研究了大神写的代码。果然很多我都不是特别理解。看到大神写的对象最后一句都加了个return this; 本人写代码从来没写过,上网看了下原来是链式调用。下面我就详细的做一些比较,大家一起学习啊!
链式调用其实我们在用jquery代码写操作的时候经常应用,例如

$("#id").addClass('active').siblings().removeClass('active');

链式调用的原理
在对象上的方法最后 加上return this
把对象再返回回来,对象就继续调用方法了,所以就可以链式操作了。
demo如下:

var obj={};
obj.a=function(){
    console.log("a")
    return this
}
obj.b=function(){
    console.log("n")
    return this
}
obj.a().b();

也可以在构造函数里面调用
demo如下:

function Fun(){
    var obj={};
    obj.a=function(index){
        ......
        return this
    }
    return obj
}

//调用
var demo=Fun();
$("#btn").click(function(){
    demo.a(2);
})

这个代码就是实现链式操作的例子。原理还是很简单的。

你可能感兴趣的:(javascript)