这个小 jQuery 插件:
jQuery.fn.reverse = [].reverse;
它是如何工作的?对象绑定在哪里 - 数组原型反转功能?我真的不明白它在幕后是如何运作的。一些解释会很好。问候
这个小 jQuery 插件:
jQuery.fn.reverse = [].reverse;
它是如何工作的?对象绑定在哪里 - 数组原型反转功能?我真的不明白它在幕后是如何运作的。一些解释会很好。问候
[].reverse
是.reverse()
来自Array原型的函数。jQuery 正在利用这一点而不是定义自己的。
[]
创建一个空数组,从中引用.reverse
函数是完全有效的。
所以现在,在 jQuery 中,$.reverse()
如果 jQuery 对象包含一组元素,就可以做到这一点。
jQuery.fn
是 的别名jQuery.prototype
。
所以这个插件将 Array 的reverse
函数添加到使用 . 创建的所有对象中new JQuery()
,使用 . 构建的集合就是这种情况$
。
它之所以有效,是因为该reverse
函数的规范使其适用于任何具有长度和索引属性的对象。您可以使用以下方法对其进行测试:
var a = {0:'a', 1:'b'};
a.length = 2;
console.log([].reverse.call(a)); // it works