在原型对象中调用函数

时间:2010-11-10 08:36:20

标签: javascript

如何从Set()调用PrintIt foo?我得到它无法找到它的错误...
我知道可以通过MyObject.prototype.PrintIt调用它,但这样我将“丢失”对象及其属性(Num)

MyObject = function(){           
    this.Num=6;            
}


MyObject.prototype = {
    initialize: function(){     
        document.getElementById("button1").onclick = this.Set;
    },
    Set: function(){
        this.PrintIt();
    },                                
    PrintIt: function(){
        alert("I Print"); 
        //alert( this.Num);                       
    }                
}

window.onload = function(){              
    obj = new MyObject;
    obj.initialize();                                
}

1 个答案:

答案 0 :(得分:7)

问题不在于原型,而在于如何将方法分配给点击处理程序。 那里它失去了与对象的连接。你可以使用一个闭包:

initialize: function(){
    var that = this;     
    document.getElementById("button1").onclick = function(){
        that.Set();
    };
},