我找到书面的解释是,通过返回当前对象,来维护链式调用。
但是我的问题是,直接return this不可以吗?
直接return this返回的不也是jQuery选择器获取的jQuery对象吗?
为什么后面要加上each()呢?
因为each返回的也是this对象,所以直接return this.each可以执行你的相关操作,还可以保持链式调用功能
你看这个each调用的是什么方法,,应该是遍历
因为this.each保证了遍历完成才执行下一个操作,否则迭代是延迟执行的,前面的插件并没有实际执行。
我感觉 return this.each(),就相当于 this.each();return this; 那么写只是简写为了方便
使用each的作用在于执行each可以带function参数,循环执行你要执行的操作。
如果单从链式角度和返回值出发,返回this和this.each返回的是一致的。
return this.each(function() {
$(this).append(' - ' + $(this).data('x'));
});
等价于
var objs = this;
for (var i=0; i<objs.length; i++) {
var obj = objs[i];
$(obj).append(' - ' + $(obj).data('x'));
};
return this;