Entschuldigung für den verwirrenden Titel, ich habe keine Ahnung, wie ich das fragen soll. Ich habe eine Frage zu Klassen und Methoden. Ich habe eine Taste, die bei Betätigung die Funktion eines anderen Objekts aufruft. In diesem Beispiel sollte "100" als f "x" in die Konsole geschrieben werden, aber stattdessen wird "0" protokolliert: "x" auf meiner Schaltfläche. Hilfe?Klassenmethode, die eine andere Klassenmethode aufruft, die als Argument gespeichert wird
<script>
function fun(x){
this.x = x;
}
fun.prototype = {
s:function(){
console.log(this.x);
}
}
function Button(func){
this.x = 0;
this.y = 0;
this.w = 1000;
this.h = 1000;
this.func = func;
}
Button.prototype = {
check_if_click:function(x, y){
if (x >= this.x && x <= this.x + this.w && y >= this.y && y <= this.y + this.h){
this.func();
}
}
}
f = new fun(100);
b = new Button(f.s);
b.check_if_click(500, 500);
</script>
Funktioniert perfekt, danke! –