peterS.: variablenbehandlung

Beitrag lesen

gruss ChrisB,

gibt es da optionen "zeigerverhalten" zu erzeugen?

... benutze ein [String] Objekt anstelle des primitiven "string values".

Um was genau zu gewinnen?

bleicher wollte wissen, wie man "zeigerverhalten" in JavaScript erzwingt.
Da Objekte in JavaScript referenziert werden, habe ich vorgeschlagen,
Objekte anstelle von Werten zu benutzen.

Bleicher wollte eine Referenz gewinnen, um möglichen aber wahrscheinlich
zu vernachlässigenden Speicheroverhead durch wiederholtes Zuweisen von
Werten (die eben nicht referenziert werden) zu vermeiden.

Mein Beispiel sollte auch nur zeigen, worin sich die Typen der auf
unterschiedliche Weise erzeugten Variablen unterscheiden.

var str = "str ";
alert(typeof str);

var strObj = new String("strObj");
alert(typeof strObj);

var obj = Object("obj");
alert(typeof obj );

[str] bildet einen einfachen Wert ab, bei [strObj] und [obj] handelt es
sich um Objekte, deren [valueOf] methode einen einfachen String-Wert
zurückgibt.

Wenn ich deinen Code

...

um folgendes ergänze,

function x(s) {

s = "abc";
  alert(s);
}

x(str);
x(strObj);
alert(str);
alert(strObj);


> dann kommt bei den letzten beiden alerts immer noch "str" und "strObj" wieder raus.  
  
... genauso sollte es sein, und es steht auch in keinem Widerspruch  
zu meinen bereits gemachten Ausführungen.  
  
  
so long - peterS. - pseliger@gmx.net  
  

-- 
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.  
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - [Douglas Crockford](http://javascript.crockford.com/)  
  
[ie:( fl:) br:> va:( ls:& fo:) rl:) n3;} n4:} ss:} de:µ js:} mo:? zu:\]](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%28+fl%3A%29+br%3A%3E+va%3A%28+ls%3A%26+fo%3A%29+rl%3A%29+n3%3B%7D+n4%3A%7D+ss%3A%7D+de%3A%B5+js%3A%7D+mo%3A%3F+zu%3A%5D)