jsLint error: “somefunction() was used before it was defined”

See this answer:

Contending with JS "used before defined" and Titanium Developer

Basically, if you use the foo = function() { ... } form, you can declare var foo, bar; at the top to avoid the JSLint errors.


JSLint can't deal with this as far as I know, but JSHint, based on JSLint, tackles this problem in a proper manner.

Just use the "latedef" property and set it to "false". In case you nevertheless want to detect these kind of problematic variable definitions, but do want to use function expressions and allow hoisting of these functions, you can set "latedef" : "nofunc".

Check it out here.