Avatar billede w13 Novice
04. august 2007 - 20:23 Der er 13 kommentarer og
1 løsning

With-do-blok

Hej Eksperter.

Hvordan er det nu, man laver en form for "with [etellerandet element] do" i JavaScript? Altså en with-do-blok, hvori man f.eks. bare kan skrive

.href="www.google.com"
.target="_blank"
.title="Google"

uden at behøve at adressere elementet hver gang, fordi det alligevel er samme element for alle 3.

På forhånd tak!
Avatar billede w13 Novice
04. august 2007 - 20:26 #1
Jeg har søgt på google, meeen det er lidt svært at finde relevante poster på "javascript do with". :)
Avatar billede erikjacobsen Ekspert
04. august 2007 - 20:48 #2
Avatar billede thesurfer Nybegynder
04. august 2007 - 20:48 #3
Avatar billede erikjacobsen Ekspert
04. august 2007 - 20:49 #4
Den her virker i hvert fald. Bemærk **ikke** punktum:

with (Math) {
  alert(floor(17.777));
}
Avatar billede thesurfer Nybegynder
04. august 2007 - 20:49 #5
w13> Søgetips:

Tilføj ordet "statement" til din søgning..

F.eks: javascript with-statement
Avatar billede erikjacobsen Ekspert
04. august 2007 - 20:51 #6
Eller "Javascript reference" (og spring lige w3schools over)
Avatar billede w13 Novice
04. august 2007 - 20:53 #7
Takker for løsningen og søgetippet. Den har jeg jeg ikke brugt før, thesurfer, men man får vist fat i de mere ordentlige dokumentationer ved at skrive statement, ser det ud til. Pointene går her til Erikjacobsen for sin hurtighed på tasterne!
Avatar billede erikjacobsen Ekspert
04. august 2007 - 20:55 #8
Jeg samler slet ikke på point, tak.
Avatar billede w13 Novice
04. august 2007 - 20:57 #9
Thesurfer! :)
Avatar billede olebole Juniormester
04. august 2007 - 21:43 #10
<ole>

- men vær opmærksom på, den er ret ineffektiv! Fra Mozilla's reference:
    "Note that using a with statement will significantly slow down your code. Do not use it when performance is critical"

/mvh
</bole>
Avatar billede w13 Novice
04. august 2007 - 21:45 #11
Ahr, skidt. Så bliver koden gemt væk. Men thesurfer, du skal da stadig lige ha' dine point!
Avatar billede olebole Juniormester
04. august 2007 - 21:46 #12
Det var fra min 'gamle', downloadede JS 1.5 reference fra Netscape's legendariske devedge-site. Her er uddybende pro et contra's:
    http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Statements:with
Avatar billede thesurfer Nybegynder
05. august 2007 - 00:39 #13
erikjacobsen> Normalt vil en reference være en god ting at have.. Problemet er så bare, at den indeholder meget mere om alt andet, end det man lige skal bruge..

Da disse statements er forholdsvis små og "simple", vil det være mere fornuftigt at gå direkte efter dem, end at gå efter en reference, og derefter prøve på at finde den pågældende statement.
Hvis man prøver med reference, må man håbe på at man ved hvor man skal hen, eller at table of contents er overskuelige nok, til at man kan finde det ønskede, inden for rimelig tid..

Angående "with":
Personligt har jeg nok aldrig været i en situation, hvor jeg har haft brug for (eller ville have en fordel ved at bruge) WITH. Ud fra en personlig holdning, vil jeg mene at der skal en del linier til, før jeg beslutter mig for at bruge WITH, fremfor f.eks. copy&paste og variabler (hvis de ting kan klare opgaven)..
At det så også er ret ineffektivt, taler vel også for ikke at bruge det. :-)


w13> Hermed et svar :-)
Avatar billede erikjacobsen Ekspert
05. august 2007 - 00:46 #14
Jow, hvis man ved hvad man søger efter. I mit link ovenfor er der en dejlig "Table 4.1 JavaScript statements." - der er så de sætninger der er, med en kort beskrivelse. Men, whatever, google er måske din ven ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester