kann mir bitte jemand bei folgendem Problem helfen?
würdest du bitte den Code den du uns zeigst ausprobieren, der funktioniert nicht.
BlaBla.prototype = {
func1 = function() {
alert(this.c);
},
Hier hast du u.a. einen Fehler eingebaut, wenn du den entferst, dann läuft dieser Code einwandfrei.
Das Problem ist dass beim aufruf von bla.func1() das this in dieser funktion nicht auf mein BlaBla zeigt sondern auf window.
Doch tut es.
Ich muss zugeben ich kenne mich mit diesen "scopes" und wann es window ist etc. noch nicht so aus. Es wäre aber trotzdem gut wenn mir einer Helfen könnte wie ich das Problem lösen kann.
Welches Problem, der Code funktioniert:
var BlaBla = function(par) {
if(!par) par = {};
this.a = par;
this.b = false;
this.c = "hallo";
}
BlaBla.prototype = {
func1:function() {
alert(this.c);
},
func2:function() {
// do something else
}
};
function test() {
// do vieles :)
bla = new BlaBla({});
bla.func1();
}
test();
Wichtig anzumerken ist dass ich alles mit dem Objekt / Klasse / Prototyp BlaBla ( wie auch immer man es in JS nennt ) _NICHT_ ändern KANN.
Ich kann nur mein Aufruf in der Funktion test() etc. ändern.
Was auch immer dein eigentliches Problem ist, ohne Änderung an der Klasse wirst du es nicht lösen können.
Struppi.