图1:setTimeOut语法【1】
setTimeout的第一个参数分为3类,1.字符串代码 2.method 3.function【2】 。
1.字符串
function display(obj)
{
obj.style.display='none';
window.setTimeout("obj.style.display='inline'", 500);
}
上面的这个代码会报错,obj is not defined。
因为setTimeout方法是window的方法,是个全局方法。执行这个方法的代码的作用域环境是window。
obj是当初display方法的参数传进来的,是个局部变量。在window下找不到obj这个变量所以报未定义。
2.封装后的方法传入 - method
function display(obj)
{
obj.style.display='none';
window.setTimeout("fn(obj)", 5000);
}
function fn(o){
o.style.display='inline'
}
这样写 obj is not defined
原因和上面一样的,这儿调用的fn()是全局方法,它的参数obj在全局变量中找不到。
这里有一个注意点就是 window.setTimeout("fn(obj)", 5000); 这