[JavaScript] variable definieren

Dieses Thema im Forum "Webentwicklung" wurde erstellt von onip, 25. April 2008 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 25. April 2008
    variable definieren

    hallo zusammen,

    ich würde gerne dynamische variablen (selbst erfundener name - keine ahnung wie man das nennt) defineren.
    in php würde das so aussehen

    PHP:
    ${ "x" . "1" } =  "xxx" ;
    echo 
    $x1 ;
    geht das auch mit javascript?

    z.b.

    Code:
    var {"x"+"1"} = "xxx";
    alert (x1);
    
     
  2. 25. April 2008
    AW: variable definieren

    ja
    Code:
    window['fo' + 'o'] = 'bar'; 
    alert(foo);
    //kurze info warum das geht:
    in js sind alles objekte. von der einfachen variablen, zahlen, strings, bishin zu funktionen und klassen.

    das hauptobjekt ist immer window.

    Code:
    var foo = "bar"
    mach nix anderes als:
    Code:
    {scope}.foo = "bar"
    mit dem unterschied das alle unterobjekte von window immer global sind. (anders in funktionen/klassen)

    und da window wieder selbst ein objekt darstellt kann man dort einfach mit nem hash-access [string] (nicht zu verwechseln mit dem array-access [int]) das window objekt erweitern.

    selbst das klassen-objekt is wieder ein objekt.

    Code:
    function foo() {
     this.bar = 'foo';
    }
    
    foo.prototype.baz = 'bar';
    
    var classFoo = new foo();
    alert(classFoo.bar); //'foo'
    alert(classFoo.baz); //'bar'
    
    var classFooWindow = new window.foo();
    alert(classFooWindow.bar); //'foo'
    alert(classFooWindow.baz); //'bar'
    und so kann man funktionen manipulieren:
    Code:
    Function.prototype.callMe = function() {
     this();
    }
    
    function bar() {
     alert('hallo welt');
    }
    
    bar.callMe(); //hallo welt
     
  3. 25. April 2008
    AW: variable definieren

    super, genau das, vielen dank

    Code:
    window['foo'+'1'] = "xxx";
    alert (foo1);
    
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.