- 面试官:链式操作是什么?
- 我:就是链式操作啊。就是当前对象可以操作不同的事件和属性,我的理解对的吧
- 面试官:我画个图给你看,巴拉巴拉,写了个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')