在编写 API 时,我倾向于将函数按自上而下的顺序排列,最暴露的函数在顶部,辅助函数在底部。但是,当使用var
而不是魔术声明定义函数时function
,函数在定义之前不能使用。那么如果我们有一个被调用的对象$company
并且我们正在定义它的方法呢?我可以以这种方式安全地订购我的 JS 吗?
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);
};
它似乎适用于我当前版本的 Firefox,但我想知道它是否是已定义的行为。是否有任何版本的 IE 出现这种情况?