1
「函數定義可能不會出現在if語句,while循環或任何其他語句中」的含義是什麼。我對這個聲明很困惑。「函數定義可能不會出現在語句中」的含義
「函數定義可能不會出現在if語句,while循環或任何其他語句中」的含義是什麼。我對這個聲明很困惑。「函數定義可能不會出現在語句中」的含義
本書中讀到的一個問題是函數定義(與函數賦值不同)在一些瀏覽器中基本上被掛起到主機函數的頂部,因此將其放入一個語句(如在if
聲明中)是徹頭徹尾的誤導。該代碼將使它看起來像函數將只在if
語句的那個分支執行時被定義,但不一定是這種情況。所以,這是一個不好的做法。它在很多情況下可能有效,但這是一種不好的做法。
所以,與其這樣:
function main(foo) {
if (foo) {
function internal() {
// code here
}
// code here
}
}
把內部功能在最頂端;
function main(foo) {
function internal() {
// code here
}
if (foo) {
// code here
}
}
僅供參考在嚴格模式下,內部函數定義只允許在最上面。
var internal;
if (foo) {
internal = function() {}
}
http://stackoverflow.com/questions/3037598/how-to-get-around-the-jslint-error-dont-make-functions-within:條件功能分配總是可以用這樣的語法做-a-loop – elclanrs
向我們展示有問題的代碼並告訴我們產生該消息的是什麼。 – jfriend00
此消息來自何處? –