Hi,
Dadurch das ich schreibe "Object.prototype.echoId = echoId;"
Das würde ich lieber lassen. Du erweiterst damit wirklich JEDES Objekt, nicht nur die HTML Elemente. Bei mir läuft das unter bad practice.
meine erste frage:
welches objekt muss ich erweitern das ich wie oben schreiben kann:
HTMLElement.
Nach meinem letztem Kenntnisstand, kann der IE das aber nicht. Zumindest IE 7 noch nicht.
[code lang=javascript]
hide: function(element) {
element = $(element);
element.style.display = 'none';
return element;
},
> (ist halt eine etwas andere schreibweise aber das tut ja jetzt nichts zur sache)
> da finde ich keine "this" wie bei mir um auf das darüber liegende objekt zuzugreifen. also vermute ich das es irgendwie möglich sein muss das ich den return wert der "darüberliegenden" ( function $ () ) an die mit "." (punkt) angefügte funktion übergebe ...
Nene. Parameter werden nicht einfach mal so aus dem Nichts heraus implizit übergeben.
Wenn du dir das mal genauer ansiehst, dann siehst, dass die hide Methode an einem Element.Methods Objekt hängt.
Prototype.js sorgt dann dafür, dass diese Methoden an die Objekte, die mit $ zurückgegeben werden, angefügt werden und der Parameter übergeben wird. Wo das jetzt genau ist, darfst du selber rausfinden. Für mich ist es schon zu spät.
Gruß!