4 svar
69 visningar
triceratops behöver inte mer hjälp
triceratops 52
Postad: 26 maj 2023 18:45

Scope

Jag märker att jag är lite förvirrad över scope, den här frågan t.ex. 

Svaret är här deklarationen på rad 3. Men jag undrar: är det så att x:et på rad 3 i sin tur refererar till x:et på rad 2? Så att det understrukna x:et på rad 5 indirekt refererar till x:et på rad 2 också? Eller har x:en på rad 2 och 3 inte med varandra att göra?

Macilaci 2178
Postad: 26 maj 2023 21:43

Nej. x:et på rad 3 (och 5) har ingenting att göra med x:et på rad 2. Det är bara en slump att de har samma namn. På rad 3 har vi en funktionsdefinition där x är en parameterdefinition och inte en referens till x på rad 2.

triceratops 52
Postad: 27 maj 2023 08:36

Då är jag med! Tack! 

Kom på en till sak jag undrar: Om man på rad 4 i stället hade skrivit const x = g(y), hade x:et på rad 4 då fortfarande refererat till x:et på rad 3? Eller blir det "sitt eget" om man definierar det som en konstant?

Macilaci 2178
Postad: 27 maj 2023 08:52 Redigerad: 27 maj 2023 08:52

Om du försöker deklarera x som konstant ska du få ett felmeddelande som säger att x har redan deklarerats.

(Skillnaden till det ursprungliga problemet är att du försöker redeklarera x i samma scope som redan har ett x.)

triceratops 52
Postad: 27 maj 2023 09:58

Ah, toppen! Tack för pedagogisk förklaring.

Svara
Close