2

该代码非常具有解释性。我在做什么是错的。onclick如果在对象方法中声明了对象,如何访问 A 对象的属性A

function A(){
    this.a = 0;
};

A.prototype.myfun= function(){
    var b = document.getElementsByClassName("myclassName");
    b[0].onclick = function(e){
    //How can I get the a property of the A object in here?
        this.a = 1;
    }
};

我可以以某种方式将其作为这样的论点传递吗?

b[0].onclick = function(e, this){
4

1 回答 1

1

由于this在函数中引用了函数本身,你可以做两件事。传递引用,或创建一个您不会覆盖的变量来表示this

function A(){
    this.a = 0;
};

A.prototype.myfun= function(){
    var self = this;
    var b = document.getElementsByClassName("myclassName");
    b[0].onclick = function(e){
        self.a = 1;
    }
};
于 2013-06-22T15:23:05.907 回答