Jquery链式操作引起的故事

124 阅读1分钟
  • 面试官:链式操作是什么?
  • 我:就是链式操作啊。就是当前对象可以操作不同的事件和属性,我的理解对的吧
  • 面试官:我画个图给你看,巴拉巴拉,写了个a.fn().fn().fn(),说每个fn会return一个东东
  • 我:好的,了解了,其实心想,肯定不是这样子,回来查了下,其实jq链式结构是这样,那其实我的理解是没有错的。

参考下文章:blog.csdn.net/zhangyizuis…

jQuery链式调用的原理分析

jQuery在封装的时候把操作DOM的api函数封装并且放到了jQuery函数内部的原型对象是哪个
并且封装的api函数都有一个返回值this,这个this指向的是jQuery的实例。

上代码:

class Factory{
    constructor(){

    }
    a(){
        console.log("a")
        return this
    }

    b(){
        console.log("b")
        return this
    }

    c(){
        console.log("c")
        return this
    }
}

var FactoryObj=new Factory()
FactoryObj.a().b().c()

function Zy(){
    this.a=function a(){
        console.log(1)
        return this
    }
    this.b=function b(){
        console.log(2)
        return this
    }
    this.c=function c(){
        console.log(3)
        return this
    }
}
var zy=new Zy()
zy.a().b().c()

具体的case选型卡:

//给对应的标签添加class,其他的标签会响应的移出掉对应的className.
$(this).addClass('on').siblings().removeClass('on')