这个小 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