jQuery 是一个快速,小巧,功能丰富的 JavaScript 库。jQuery 的一个特点就是链式操作。本文粗略讲解其原理。
- 相信大家对链式 jQuery 的链式操作并不陌生,在这里简单的介绍一下链式操作的实现思路(用原生 JS 实现链式操作)。
- 首先我们观察一下 jQuery 的基本语法
- 基本语法由选择器和执行函数组成,jQuery 选择器返回的是一个自建对象(Object),jQuery 函数的方法是属于这个对象的,也就是说这些方法只能由这个对象来调用,所以实现链式操作只需要在执行一个函数后返回对象就行了。
- 示例如下:
JavaScript1 2 3 4 5 6 7 8 9 10
| var obj = { sayName: function (name) { comsole.log("i am " + name); return this; }, action: function (action) { comsole.log("i am " + action); return this; }, };
|
- 这里的
return this
返回了一个对象,通过obj.sayName("jQuery").actoin("chaining")
就可以实现连续调用函数了。
- 其实并非是 jQuery 中才有这种链式操作,原生 js 中同样有的,比如有很多字符串和数组的方法都会返回字符串或者数组(字符串通过包装类返回字符串对象并拥有方法),例如反序输出字符串:
1 2
| var str="Wellcome"; str.split('').reverse().join('')
|
- 综上所述,在一个方法中返回一个 Object 类型的值就能实现类似 jQuery 的链式操作。