Struppi: Weblog-Artikel: Der sinnvolle Einsatz von JavaScript

Beitrag lesen

Woran ich zur Zeit wirklich ganz hart knacken muss ist objektorientierte Programmierung in JavaScript. Ich finde irgendwie keie sinnvollen Texte, die einem den Einstieg da irgendwie erleichtern. Zum Beispiel finde ich keine Erklärung zur Vererbung und auch nicht zum Unterschied zwischen Objekteigenschaft und einer Variable die innerhalb des Objektes definiert wird.

Vererbung ist in JS ein kritisches Thema, weil es teilweise anders funktioniert als in anderen Sprachen (s. auch den Artikel von Douglas Crockford).

Auch suche ich nach informationen was mit funktionen passiert, die innerhalb einer methote definiert werden und wie die auf andere methoden, eigenschaften und variablen zugreifen können.

Das ist IMHO zu fortgeschritten für selfHTML. Da sich in erster Linie darum dreht, wie man in JS private, public und privilegierte Objektmitgliedern nachbaut.

Hier noch drei Beispiele die ich von Daniel aus dem #selfhtml Chat bekommen habe, die sich um das mit den Objekteigenschaften und variablen drehen und die ich (noch) nicht verstehe:

function obj1() {

this.abc = "123";
    this.bla = function() {
        alert(this.abc)
    }
};

var a = new obj1();
var b = a.bla;
b();

  
Du erzeugst ein Objekt und weist die Funktionsreferenz einer Memberfunktion b zu, durch anhängen der Klammer wird diese aufgerufen. Bei mir kommt undefined.  
  
Das hat aber mit OO nichts zu tun. Das ist das Gleiche wie:  
var b = alert;  
b('test');  
  
  

>   
> ~~~javascript

function obj1() {  

>     this.abc = "123";  
>     this.bla = function() {  
>         alert(this.abc)  
>     }  
> };  
>   
> var a = new obj1();  
> a.bla();

Was ist hier unklar?

function obj1() {

var abc = "123";
    this.bla = function() {
        alert(abc)
    }
};

var b = a.bla;
b();
var a = new obj1();

  
Das geht nicht.  
Wenn es darum geht, warum abc undefined ist, da du kein this davor stehen hast, ist die Variabel jetzt im Geltungsbereich window also window.abc  
  

>   
> Dieses Themengebiet fehlt in SELFHTML < 9 völlig und sollte auf jeden Fall behandelt werden, da es vor allem auf Deutsch anscheinend zumindest online keine entsprechenden Texte gibt und auf englisch habe ich sie auch noch nciht gefunden.  
  
Ich halte das für z.T. fortgeschrittene Programmierung. Dann müßte auch in Perl dieses Thema wesentlich weiter erläutert werden. Aber ich denke selfHTML will und kann das nicht bieten.  
  
Struppi.

-- 
[Javascript ist toll](http://javascript.jstruebig.de/)