window.onload = function(){function n(i){alert(1);}setTimeout('n(1)',2000);}
以上代碼會報錯:n() is not defined。
原因:
unction n(){}被定義在了window.onload的處理方法里,成了一個內部函數,并沒有暴露在window對象下,而setTimeout的運行時環境是在window下的,會找不到這個方法,這個跟沖突沒關系。
當你去掉window.onload之后,funciton n(){}就暴露在window下了,就可以找到了。