javascript引用错误

javascript引用错误,javascript,settimeout,Javascript,Settimeout,首先,当图像加载时,我调用函数reloadImage1,如下所示: <img src="loading.gif" onload="reloadImage1(this,'newphoto.jpg')"> 这是重新加载的图像2: function reloadImage2(img,isrc) { img.removeAttribute("onload"); img.src = isrc; } 执行reloadImage1时,我收到以下错误消息: function re

首先,当图像加载时,我调用函数reloadImage1,如下所示:

<img src="loading.gif" onload="reloadImage1(this,'newphoto.jpg')">
这是重新加载的图像2:

function reloadImage2(img,isrc)
{
    img.removeAttribute("onload");
    img.src = isrc;
}
执行reloadImage1时,我收到以下错误消息:

function reloadImage1(img,isrc)
{
    setTimeout("reloadImage2(img,isrc)",2000);
}

参考错误:未定义img
尝试将
重新加载图像1
更改为:

function reloadImage1(img, isrc) {
    setTimeout(function() {
        reloadImage2(img, isrc);
    }, 2000);
}

检查此演示:

尝试将
重新加载图像1
更改为:

function reloadImage1(img, isrc) {
    setTimeout(function() {
        reloadImage2(img, isrc);
    }, 2000);
}
在代码中选中此演示:

> function reloadImage1(img,isrc) {
img和src是函数的局部变量

>     setTimeout("reloadImage2(img,isrc)",2000);
> }
将字符串传递给setTimeout时,它在全局上下文中执行,它无权访问函数中的变量img和src。而是将具有闭包的函数传递给原始函数上下文,例如:

  setTimeout(function() {reloadImage2(img,isrc);}, 2000);
在代码中:

> function reloadImage1(img,isrc) {
img和src是函数的局部变量

>     setTimeout("reloadImage2(img,isrc)",2000);
> }
将字符串传递给setTimeout时,它在全局上下文中执行,它无权访问函数中的变量img和src。而是将具有闭包的函数传递给原始函数上下文,例如:

  setTimeout(function() {reloadImage2(img,isrc);}, 2000);

决不应将函数作为字符串传递给
setTimeout
,而应使用空白的
function(){}
wrap。决不应将函数作为字符串传递给
setTimeout
,而应使用空白的
function(){}
wrap。