如何最好地访问关闭之外的对象/变量?

时间:2013-11-06 01:14:46

标签: javascript jquery object closures

以下是我打算用来组合准备好(下载)的几个缩略图然后以某种方式将它们插入DOM的代码示例(仅提取必要部分)。 JSLint将此代码传递给OK,但FF / Firebug在下面的部分失败了,我得到一个错误,说“TypeError:readyHTML为null”。我甚至试图声明this.readyHTML = new ReadyHTML();var self = this;,然后将其从self.readyHTML关闭引用为img.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
}

0 个答案:

没有答案