2013-06-01 51 views

回答

7

要拆分起來:

function one() { 
    return [1, function() { one(); }]; 
} 
console.log((one()[1])()); 

one(); // [1, function() { one(); }] 
[1] // function() { one(); } 
() // undefined 

如果返回one()它會返回數組:

function one() { 
    return [1, function() { return one(); }]; 
} 
console.log((one()[1])()); 

one(); // [1, function() { return one(); }] 
[1] // function() { return one(); } 
() // [1, function() { return one(); }] 
+2

或者把所有這些都說出來:匿名函數沒有顯式地返回一個值,因此默認返回'undefined'。 – nnnnnn

+0

啊,我很抱歉。我不能相信我忘記了回報。花了半個小時想知道這是否是我沒有得到的JavaScript概念。謝謝。 – chenglou

+0

Woah woah woah,你不能只使用'return one();' - 會不會導致無限遞歸? – Ian