javascript - appendTo 中的 [original] 是什么

标签 javascript jquery

我需要在 jQuery 中编写自己的appendTo,因此我必须引用 jQuery 源代码,我在 jQuery 源代码中看到了以下代码:

function (selector) {
    var elems, i = 0,
        ret = [],
        insert = jQuery(selector),
        last = insert.length - 1;

    for (; i <= last; i++) {
        elems = i === last ? this : this.clone(true);
        jQuery(insert[i])[original](elems);

        // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()
        push.apply(ret, elems.get());
    }

    return this.pushStack(ret);
}

现在我在appendTo的jQuery代码中看到以下行:

 jQuery(insert[i])[original](elems);

这里的[original]是什么?

最佳答案

site you linked仅显示函数的源代码,其周围范围(通过Function.prototype.toString)。与 actual source 进行比较时,您可以看到原始变量来自外部作用域:

jQuery.each({
    appendTo: "append", // <<< This key-value pair...
    prependTo: "prepend",
    insertBefore: "before",
    insertAfter: "after",
    replaceAll: "replaceWith"
}, function( name, original ) { // <<< ...is bound to these arguments
    jQuery.fn[ name ] = function( selector ) { // <<< The function from the OP
        var elems,
            ret = [],
            insert = jQuery( selector ),
            last = insert.length - 1,
            i = 0;

        for ( ; i <= last; i++ ) {
            elems = i === last ? this : this.clone( true );
            jQuery( insert[ i ] )[ original ]( elems );

            // Support: Android<4.1, PhantomJS<2
            // .get() because push.apply(_, arraylike) throws on ancient WebKit
            push.apply( ret, elems.get() );
        }

        return this.pushStack( ret );
    };
});

关于javascript - appendTo 中的 [original] 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31929362/

相关文章:

javascript - 我可以用 bluebird Promises 提前打破链条吗?

javascript - 带有面板的 Ext.Layer

javascript - jQuery 正则表达式通过子字符串查找字符串

javascript - 不使用 FileSystem API 搜索子文件夹中所有服务器端文件中的元数据

javascript - 根据距离显示/隐藏标记(使用 JQuery slider )

javascript - 如何使用 YouTube API 从特定时间获取帧作为图片

javascript - 使用 jQuery 动态显示 Django 表单中的选定选项

javascript - 在不允许通过 URL 手动更改的情况下启用后退按钮

javascript - 通过 GET 的关键字中的空格被 chop

javascript - 点击更新参数