When writing an API, I tend to like putting the functions in a top-down order, with the most exposed functions at the top, and the helper functions at the bottom. However, when defining functions with var
rather than the magic function
delcaration, a function cannot be used before it's defined. So what about if we have an object called $company
and we're defining its methods. Can I safely order my JS in this fashion?
var $company = {};
$company.foo = function(x) {
$company.bar(x*x); // used in definition, but not called directly - ok?
};
// $company.bar(6) // this would produce an error
$company.bar = function(x) {
alert(x);
};
It seems to work in my current version of Firefox, but I'd like to know if it's defined behavior. Are there any versions of IE where this breaks?