请会用js的哥们帮分析一下以下代码

Merlini_Xu
  • 69

尤其是while 那里,整个方法是类似于jquery .each()的一种方法。其实我不大理解他这代码为啥不用each.

//Forward fast each
$.fn
    .fwdEach = (function () {
    var jq = jQuery([1]);
    return function (c) {
        var i = -1,
            el, len = this.length;
        try {
            while (++i < len && (el = jq[0] = this[i]) && c.call(jq, i, el) !== false);
        } catch (e) {
            delete jq[0];
            throw e;
        }
        delete jq[0];
        return this;
    };
}());
评论
阅读 2.6k
1 个回答

fwdEach会准备好对应element的jQuery object,作为this传递给回调函数。
因为jQuery object jq是重复利用的,性能会略好于在回调函数内调用var jq = $(this);

撰写回答

登录后参与交流、获取后续更新提醒

宣传栏