在if
語句裏面javascript函數的處理是什麼? js是不是這樣做?下面的代碼在瀏覽器中運行時效果很好。它會在兩秒後提醒「嘿」。Javascript函數在if語句內部掛起
<script>
setTimeout(hey,2000)
function hey(){
alert('hey')
}
</script>
但添加繁瑣if
聲明解決此:
<script>
if(true){
setTimeout(hey,2000)
function hey(){
alert('hey')
}
}
</script>
,突然就抱怨說,hey is not defined
。
現在,如果你改變了回調從hey
到function(){hey()}
,像這樣:
<script>
if(true){
setTimeout(function(){hey()},2000)
function hey(){
alert('hey')
}
}
</script>
然後開始再次合作,甚至與if語句。發生什麼了?
我[無法重現](http://jsfiddle.net/7omodL3z/)您描述的問題。 – Quentin 2014-12-03 20:56:41
http://jsfiddle.net/r1oc1joh/ JFiddle接受它。 – jackncoke 2014-12-03 20:58:04
我正在使用firefox。您可以直接將該代碼剪切並粘貼到文件中,而無需使用任何其他代碼,並且它發生在我身上。 – 2014-12-03 20:58:25