Methode an Funktion übergeben und aufrufen. ??
Notschko
- javascript
Ich habe ein Objekt dessen Methode ich an eine Funktion übergeben möchte. Diese Funktion soll die Methode aufrufen und das Array übergeben.
Leider funktioniert das Beispiel unten nicht.
Seht ihr einen Fehler?
function Objekt() {
this.methode = function( arg) {
alert( arg[0]);
}
}
function laden( foo) {
foo( new Array(1,2,3));
}
<a href="#" onclick="laden(new Objekt.methode);">test</a>
Danke!
Notschko
hi,
Leider funktioniert das Beispiel unten nicht.
Seht ihr einen Fehler?
Welchen siehst du, in der Fehlerkonsole deines Browsers?
Ich halte den Ansatz für nicht sonderlich geschickt.
call/apply wären m.E. eher geeignet. (s.a.)
gruß,
wahsaga
Welchen siehst du, in der Fehlerkonsole deines Browsers?
"foo" wird aufgerufen. Jedoch wird der Wert, den ich übergeben habe als "undefined" ausgegeben.
In der Fehler-Konsole steht: "foo is not a function"
Ich halte den Ansatz für nicht sonderlich geschickt.
call/apply wären m.E. eher geeignet.
Was ist der Nachteil meines Ansatzes?
Bzw. der Vorteil von call und apply?
Gruß, Notschko
gruss Notschko
Seht ihr einen Fehler?
...laden(new Objekt.methode);
...
hilft Dir ...
~~~javascript
laden((new Objekt()).methode); // bzw.
laden((new Objekt).methode);
... weiter?
so long - peterS. - pseliger@gmx.net
--
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - [Douglas Crockford](http://javascript.crockford.com/)
ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]
Seht ihr einen Fehler?
Ja, du vermengst hier eineige Dinge.
function Objekt() {
this.methode = function( arg) {
alert( arg[0]);
}
}
Bist du sicher, dass du mit einem Objekt arbeiten willst?
function laden( foo) {
foo( new Array(1,2,3));
}
Denn hier willst du offensichlich eine Funktionsreferenz übergeben und kein Objekt.
<a href="#" onclick="laden(new Objekt.methode);">test</a>
Du kann nicht die Methodes eines constructors als Objekt benutzen.
Dein Konzept ist falsch, die Frage wäre, was willst du exakt erreichen. Ich sehe hier einen Fehler im OO Ansatz, evtl. ist auch der Tipp von wahsaga der richtige, es kommt darauf an was du willst.
Struppi.