在編寫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瀏覽器打破?
當你調用它時,JS將使用你的函數,所以當你聲明foo時,bar可能不存在,但是當foo被調用時它應該存在。 – Loenix 2014-09-18 15:55:52