Javascript onclick和对象的标识

Javascript onclick和对象的标识,javascript,onclick,prototype,Javascript,Onclick,Prototype,我希望这仍然有意义。我身上没有代码,但我想知道如何才能做到这一点。问题出在“onclick=\”thatThing.doSmthg()\“” 结果是“那东西没有定义” 谢谢 var oneThing = new Thing(); letsDoSmthg(oneThing); letsDoSmthg(thatThing){ document.getElementById("fezok").innerHTML+="<input type=\"button\" value=\"Do

我希望这仍然有意义。我身上没有代码,但我想知道如何才能做到这一点。问题出在“
onclick=\”thatThing.doSmthg()\“

结果是“那东西没有定义”

谢谢

var oneThing = new Thing();

letsDoSmthg(oneThing);

letsDoSmthg(thatThing){
    document.getElementById("fezok").innerHTML+="<input type=\"button\" value=\"Do smthg\" onclick=\"thatThing.doSmthg();\">";
}

function Thing(){
    this.variable1=0;
}
Thing.prototype={
    doSmthg: function(){
        this.variable1=1534;
    },
var-oneThing=新事物();
letsDoSmthg(网心科技);
让我们谈谈(那件事){
document.getElementById(“fezok”).innerHTML+=“”;
}
函数事物(){
这个变量1=0;
}
事物原型={
doSmthg:function(){
这个变量1=1534;
},

不要使用字符串创建HTML。请使用元素

var letsDoSmthg = function(thatThing) {
    var button = document.createElement('input');
    button.type = 'button';
    button.onclick = function() {
        thatThing.doSmthg();
    };

    document.getElementById("fezok").appendChild(button);
};

您应该创建实际的DOM元素并使用
addEventListener()
通过闭包传递函数。如果我不想使用dom元素怎么办?@user2090805然后不进行web开发?我切换到了dom元素……但我的意思是出于好奇,如果dom不存在,我该怎么做?@user2090805如果dom不存在,HTML也不存在,毫无疑问OK nvm先生无所不知