0

下面是一个代码示例(只提取了必要的部分),我打算用它来组合几个准备好的(下载的)缩略图,然后以某种方式将它们插入到 DOM 中。JSLint 将此代码传递为 OK,但 FF/Firebug 在下面的本节中失败了,我收到一条错误消息“TypeError:readyHTML 为空”。我什至尝试过声明this.readyHTML = new ReadyHTML();var self = this;然后self.readyHTMLimg.onload = function () {};闭包中引用它。基本上我需要能够从 img.onload 的闭包中访问和更新 readyHTML 对象。不可能吗?我认为做错了什么,但我无法弄清楚在哪里/如何/为什么。

   function ReadyHTML() {
    "use strict";
    this.buffer = [];
    ReadyHTML.prototype.append = function (string) {
        this.buffer.push(string);
        return this;
    };
    return true;
}

function f() {
    "use strict";
    var readyHTML = new ReadyHTML();
    var img = new Image();
    var image_url;
    img.onload = function () {
        readyHTML.append('<a href=""><img src="' + image_url + '" class="xph4 ca"/></a>');
    };
    image_url = "some/url/to/an/image";
    img.src = image_url; // This calls img.onload whence the error comes
}
4

0 回答 0