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下了,就可以找到了。