此代碼始終工作,甚至在不同的瀏覽器:爲什麼我在JavaScript中定義函數之前可以使用它?
function fooCheck() {
alert(internalFoo()); // We are using internalFoo() here...
return internalFoo(); // And here, even though it has not been defined...
function internalFoo() { return true; } //...until here!
}
fooCheck();
我找不到一處提到爲什麼它應該工作,雖然。 我第一次在John Resig的演示文稿中看到了這一點,但它只是被提及。對於這件事,沒有任何解釋。
有人請賜教嗎?
在Firefox的新版本,如果代碼是在一個try/catch這不起作用。看到這個小提琴:http://jsfiddle.net/qzzc1evt/ – 2015-01-30 22:11:01