HighDots Forums  

Ist "with" wirklich so gefährlich?

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Ist "with" wirklich so gefährlich? in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Ferry Bolhar
 
Posts: n/a

Default Ist "with" wirklich so gefährlich? - 04-04-2008 , 04:18 PM






Hallo,

der "with"-Befehl (falls man ihn als solchen bezeichnen kann,
ich würde ihn eher als Deklaration ansehen), wird in der
meisten JS-Literatur, die ich kenne (ist allerdings nicht viel,
nur "Javascript - das umfassende Referenzwerk" und das
"kurz & gut" Büchlein dazu, beides von O'Reilly) als
gefährlich, weil mit "unvorhersehbaren Nebeneffekten
behaftet" bezeichnet.

Frage an die Experten: was ist an "with" so gefährlich bzw.
welche Nebeneffekte sind damit gemeint? Ich verwende
es ansich sehr gerne, es erspart viel Schreiberei.

LG aus Wien,

Ferry
--



Reply With Quote
  #2  
Old   
Georg Maaß
 
Posts: n/a

Default Re: Ist "with" wirklich so gefährlich? - 04-05-2008 , 11:36 AM






Gregor Kofler wrote:
Quote:
Ferry Bolhar meinte:
Frage an die Experten: was ist an "with" so gefährlich bzw.
welche Nebeneffekte sind damit gemeint? Ich verwende
es ansich sehr gerne, es erspart viel Schreiberei.

Ich verwende with nie.
Ich auch nicht, kann aber den built-in-Kapierschutz-Faktor deutlich
steigern.

Quote:
Spart wahrscheinlich (ich kann nur vermuten)
Kopfschmerzen. Was wenn ich gleichlautende (globale)
Variablen/Funktionen und Eigenschaften/Methoden des with-Objektes habe?
Was wird innerhalb des with-Konstruktes bevorzugt?
js> var o ={a:1,b:2};
js> var a = 3;
js> with(o){print (a);}
1

In JS 1.6 verdeckt die Objekt-Eigenschaft a die gleichnamige Variable a.


Reply With Quote
  #3  
Old   
Ralf Beutler
 
Posts: n/a

Default Re: Ist "with" wirklich so gefährlich? - 04-05-2008 , 01:20 PM



Gregor Kofler schrieb:
Quote:
Georg Maaß meinte:

js> var o ={a:1,b:2};
js> var a = 3;
js> with(o){print (a);}
1

In JS 1.6 verdeckt die Objekt-Eigenschaft a die gleichnamige Variable a.

Schon klar. Es wird mir aber der Zugriff auf die Variable verunmöglicht.
Hä?

js> print (a);

wird ja wohl 3 ausgeben, oder?

Ich verstehe auch nicht, was an
js> var o ={a:1,b:2};
js> var a = 3;
js> with(o){print (a);}
1

erstaunlich ist. Das ist doch das erwartete Verhalten, oder?

br | rb
--
Sie freuten sich riesig, wenn eine Maschine nach sechs Stunden etwas
fertig brachte, wozu jeder Mensch auf der Straße für 2 Cent fähig
gewesen wäre. Anschließend ließen sie sich Bananen- und Sushi-Pizza
kommen und schliefen vor der Tastatur ein. [aus T.P., Heiße Hüpfer]


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.