V prvom rade treba povedať, že bod tohto nie je možné určiť, keď je funkcia definovaná, až keď je funkcia vykonaná, je možné určiť, na koho táto funkcia smeruje, v skutočnosti je posledným bodom objekt, ktorý ju volá (s touto vetou sú určité problémy a neskôr bude vysvetlené, prečo problém existuje, hoci väčšina článkov na internete to tvrdí, hoci v mnohých prípadoch s tým nebude problém, ale v skutočnosti je toto chápanie nepresné, Keď to pochopíte, budete mať pocit nepochopenia), takže túto otázku podrobne preskúmam.
Test je nasledovný:
Táto má rôzne hodnoty pre rôzne účely funkcií. Vo všeobecnosti ide o objekt prostredia, v ktorom funkcia beží. Použitie tejto metódy je podrobne rozobrané v štyroch situáciách.
Prípad 1: Čisté volania funkcií
Toto je najbežnejšie použitie funkcie a ide o globálne volanie, takže predstavuje globálny objekt. Pozrite sa na kód nižšie, beží s výsledkom 1.
Prípad 2: Metóda volania ako objektu
Funkcia môže byť tiež nazývaná metódou objektu, v takom prípade sa vzťahuje na nadradený objekt.
Prípad 3 Volajte ako konštruktor
Takzvaný konštruktér znamená, že prostredníctvom tejto funkcie môže byť vygenerovaný nový objekt. V tomto bode sa to vzťahuje na tento nový objekt.
Výsledok behu je 1. Aby sme ukázali, že momentálne nejde o globálny objekt, robíme niekoľko zmien v kóde:
Výsledok behu je 2, čo znamená, že hodnota globálnej premennej x sa vôbec nezmenila.
Prípad 4 aplikovať volanie
apply() je metóda funkcie, ktorá mení volaný objekt funkcie. Jeho prvý parameter reprezentuje zmenený objekt, ktorý volá funkciu. Preto sa to vzťahuje na tento prvý parameter.
Keď je parameter apply() prázdny, globálny objekt sa volá automaticky. Preto výsledok behu je 0, čo dokazuje, že sa vzťahuje na globálny objekt.
Ak zmeníte posledný riadok kódu na
Bežiaci výsledok sa stáva 1, čo dokazuje, že toto predstavuje objektový cieľ.
(Koniec)
Referencia:
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
|