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