Javascript image onload回调类实习生函数

时间:2012-07-09 08:40:19

标签: javascript image callback onload

Objekt.prototype.loadImg = function(pImg){
    if(pImg!=null){
        this.imgLoaded=false;
        this.img = null;
        this.img = new Image();         
        this.img.src = pImg;     
        this.img.onload = function(){
            alert("!");
            this.autoSize();                
            this.imgLoaded=true;
        }; 

    }
}

我的问题是“onload = function()”中的“this”无效 - 函数!

警报( “!”);是执行,但不是Objekt.prototype.autoSize() - 函数,例如!

如何调用我的“class-intern”功能(例如autoSize)???

1 个答案:

答案 0 :(得分:1)

那是因为你的objekt作为接收者没有调用onload函数。因此,在此回调中this不是所需的对象。

您可以执行此操作以将this传送到onload回调:

Objekt.prototype.loadImg = function(pImg){
    if(pImg!=null){
        this.imgLoaded=false;
        this.img = null;
        this.img = new Image();         
        this.img.src = pImg;     
        var _this = this;
        this.img.onload = function(){
            alert("!");
            _this.autoSize();                
            _this.imgLoaded=true;
        }; 
    }
}