如何在JS中从子级访问Parent

时间:2012-10-20 23:12:47

标签: javascript jquery

我想从失败的jQuery方法访问对象自己的函数。

function obj(){    
    this.send = function(){
        $.get("send.php",null,function(data){
            this.success();
        }).error(function(){ this.fail(); });
    }
    this.fail = function(){
        alert("fail");
    }
}

var o = new obj();
o.send();

给出此错误:TypeError: this.fail is not a function

如何在jQuery中访问函数fail

1 个答案:

答案 0 :(得分:2)

在第5行,fail不会被同一个对象调用,因此this没有相同的引用,因此没有方法失败。我们说您改变了背景

诀窍是使用通常称为 self that _this 的变量。我更喜欢self

function obj(){    
    var self = this;
    this.send = function(){
        $.get("send.php",null,function(data){
            this.success();
        }).error(function(){ self.fail(); });
    }
    this.fail = function(){
        alert("fail");
    }
}

它应该成功,是的,javascript看起来像一个可惜的语言。但是一旦你克服了一些问题,你就会喜欢这些可能性。