I recently saw this code on another post ( jQuery Set Cursor Position in Text Area )
new function($) {
$.fn.setCursorPosition = function(pos) {
// function body omitted, not relevant to question
}
} (jQuery);
After too long trying to understand what it was doing I finally figured out that it’s just creating a new function with a parameter $ and then invoking it with jQuery as the parameter value.
So actually, it’s just doing this:
jQuery.fn.setCursorPosition = function(pos) {
// function body omitted, not relevant to question
}
What’s the reason for the original, more confusing version?
For large blocks of code using
$is much nicer thanjQuery.When using multiple libraries, people will often disable the
$shortcut because many libraries use it. Writing the code like that allows users to write code with the shortcut without worrying about conflicting with other libraries. And since this site applies to a wide audience, using that code is the most likely to work whether or not the user has$enabled.