Struppi: Code-Verbesserung u.Test gewünscht

Beitrag lesen

function Konstruktor() {

var foo1 = document.createElement("div");
  foo1.style.irgendwas = "irgendwas";
  foo1.id = "bar";
  this.foo = foo1;
}

  
Das ist im Prinzip gut. fool ist nur im Objekt sichtbar und sollte es auch sein, nach den Paradigmen der OOP. Aber in JS ist es durchaus üblich Objekte "public" zu machen. z.b. for(attribut in window).  
  
D.h. du musst Wissen ob du fool public machen willst oder nicht, im ersten Fall machst du `this.foo1 = document.createElement("div");`{:.language-javascript} im zweiten `var foo1 = document.createElement("div");`{:.language-javascript} und den Umweg über this.foo kannst du sparen.  
  

> oder  
>   
> ~~~javascript

function Konstruktor() {  

>   var xy = this;  
>   var foo1 = document.createElement("div");  
>   foo1.style.irgendwas = "irgendwas";  
>   foo1.id = "bar";  
>   xy.foo = foo1;  
> }

Der Umweg über xy ist hier überflüssig, wann er nicht überflüssig ist, hat dir ja schon Don gezeigt.

function Konstruktor() {

this.foo = document.createElement("div");
  this.foo.style.irgendwas = "irgendwas";
  this.foo.id = "bar";
}

  
siehe oben.  
  

> ~~~javascript

function Konstruktor() {  

>   var xy = this;  
>   xy.foo = document.createElement("div");  
>   xy.foo.style.irgendwas = "irgendwas";  
>   xy.foo.id = "bar";  
> }  
> 

egal.

oder ist das mehr oder weniger akademisch?

Nicht ganz. Im Prinzip brauchst du nur this und solltest public Variabeln vermeiden. this kann aber fehlschlagen, wenn du closures benutzt, weil dort u.U. this nicht mehr das gleiche ist, wie ausserhalb. Dann kommt der Umweg über xy zum tragen (ich nenn es immer self). Und die Entscheidung ob du lieber eine public Variabel oder Objekt benutzt ist in JS akademisch

Struppi.

P.S. ich bastel auch grad an so nem Ding http://javascript.jstruebig.de/test/js-popup/, wurd mir aber dann irgendwann zu kompliziert.