Zoeken…
Dynamische scoping in actie
Dynamische scoping betekent dat variabele opzoekingen plaatsvinden in het bereik waar een functie wordt genoemd , niet waar deze is gedefinieerd .
$ x=3
$ func1 () { echo "in func1: $x"; }
$ func2 () { local x=9; func1; }
$ func2
in func1: 9
$ func1
in func1: 3
In een taal die func1
scoped is, zou func1
altijd in het globale bereik zoeken naar de waarde van x
, omdat func1
wordt gedefinieerd in het lokale bereik.
In een dynamisch func1
taal kijkt func1
in het bereik waar het wordt genoemd . Wanneer het vanuit func2
wordt func2
, zoekt het eerst in het lichaam van func2
naar een waarde van x
. Als het daar niet was gedefinieerd, zou het eruitzien in de globale scope, waar func2
kwam.
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow