Javascript 在原型对象中调用函数

Javascript 在原型对象中调用函数,javascript,Javascript,如何从Set()调用PrintIt foo?我得到一个错误,它找不到它… 我知道可以通过MyObject.prototype.PrintIt调用它,但这样我会“丢失”对象及其属性(Num) 问题不在于原型,而在于如何将方法分配给单击处理程序。在那里,它失去了与对象的连接。您可以使用闭包: initialize: function(){ var that = this; document.getElementById("button1").onclick = functi

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


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

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

我总是忘记结束。。。有“经验法则”吗?@shlomjmi:你是说什么时候用?无论何时分配方法,但希望在对象的上下文中执行该方法。但是当
bind()
更受支持时,这种做法可能会消失:当我必须使用闭包时,我无法100%地获得它,例如,我知道闭包用于在循环中分配事件。。。(否则将只分配最后一个索引)@shlomjmi:如果您了解JavaScript的工作原理,那么您将知道何时使用闭包;)或者,每当您想知道为什么某些东西不起作用时,请记住闭包,也许它们有帮助:)
initialize: function(){
    var that = this;     
    document.getElementById("button1").onclick = function(){
        that.Set();
    };
},