扩展jQuery的奇怪语法

Bra*_*son 5 javascript jquery

我最近在另一篇文章中看到了这段代码(jQuery在文本区域中设置光标位置)

new function($) {
    $.fn.setCursorPosition = function(pos) {
        // function body omitted, not relevant to question
    }
} (jQuery);
Run Code Online (Sandbox Code Playgroud)

经过太长时间试图理解它在做什么后,我终于发现它只是用参数$创建一个新函数,然后用jQuery作为参数值调用它.

实际上,它只是这样做:

jQuery.fn.setCursorPosition = function(pos) {
    // function body omitted, not relevant to question
}
Run Code Online (Sandbox Code Playgroud)

原始的,更令人困惑的版本是什么原因?

zmb*_*ush 5

对于大块代码使用$比使用更好jQuery.

使用多个库时,人们通常会禁用$快捷方式,因为许多库都使用它.编写这样的代码允许用户使用快捷方式编写代码而不必担心与其他库冲突.由于此网站适用于广泛的受众,因此无论用户是否已$启用,最有可能使用该代码.