1015: Closures und Scopes

Hallo, wie kann ich eine Variable in JavaScript von einer prototype-Funktion aus beschreiben? Hier der Codde:

new start();  
  
var start = function(){  
  this.test  = "Hallo!";  
  change();  
}  
  
start.prototype.change = function(){  
  this.test = "new Hallo";  
  alert(this.test);  
}  

Danke im voraus. Bin noch ziemlicher Anfänger was JavaScript angeht. :)

  1. Hallo,

    Hallo, wie kann ich eine Variable in JavaScript von einer prototype-Funktion aus beschreiben? Hier der Codde:

    new start();

    var start = function(){
      this.test  = "Hallo!";
      change();
    }

    start.prototype.change = function(){
      this.test = "new Hallo";
      alert(this.test);
    }

    
    >   
    > Danke im voraus. Bin noch ziemlicher Anfänger was JavaScript angeht. :)  
      
    <https://forum.selfhtml.org/?t=209765&m=1427832>  
      
    Prototype hat nix mit dem Scope der Funktion zu tun.  
      
      
    Gruß  
      
    jobo
    
  2. var start = function(){

    Als Konvention benennt man Konstruktoren mit einem Großbuchstaben am Anfang, um sie von normalen Funktinonen abzugrenzen.

    this.test  = "Hallo!";
      change();

    Das wird nicht funktionieren, sondern eine Exception auslösen, weil die Funktion change nicht gefunden wurde.

    Wenn du hier die Objektmethode aufrufen willst, musst du this.change(); notieren.

    start.prototype.change = function(){
      this.test = "new Hallo";
      alert(this.test);
    }

    Dann zeigt this in dieser Funktion auch auf das Instanzobjekt.

    Allgemein zur Einführung:
    http://molily.de/js/organisation-instanzen.html

    Mathias