How can i make this code jsLint Happy ?
;(function ( $, window, document, undefined ) {
//some code
})( jQuery, window, document );
It advises me to write it this way ? Will there be any difference ? What do i do ?
(function ( $, window, document, undefined ) {
//some code
}( jQuery, window, document ));
I'm copying my answer from the next question in the JSLint stack. Here's why Crockford says that the second way is better.
From http://javascript.crockford.com/code.html
To expand a little, JavaScript isn't, as we know, a strongly typed language. It's not uncommon to push a
function
into a variable, and, in fact, it could be more common to push a function into avar
than a value from an immediately invoked anonymous function.So it's worth having a little syntactic sugar in your code to show when you're invoking rather than setting a reference to a function.
Don't get bogged down by those that complain that it's impossible to separate Douglas Crockford's opinions from JSLint. They're right, and that's good!
In a big enough project, why would you have to disagree with him? I'm never seen Crockford require something that's objectively wrong. All of the rules in JSLint are arguably good ones, and standardization of code in shared projects is often A Very Good Thing. He's teaching you good (!bad?) habits for free. It's worth playing along.
(The leading semi-colon, I see where you're going -- defensive is good. But if everyone used JSLint... I still feel your pain there a little.)