Ensinnäkin on sanottava, että tämän kohdetta ei voida määrittää, kun funktio on määritelty, vaan vasta kun funktio suoritetaan, voidaan määrittää, kenelle tämä osoittaa, itse asiassa tämän lopullinen piste on objekti, joka sitä kutsuu (tässä lauseessa on joitakin ongelmia, ja myöhemmin selitetään, miksi ongelma on, vaikka useimmat internetin artikkelit sanovat näin, vaikka monissa tapauksissa ei ole ongelmaa tämän ymmärtämisen kanssa, mutta itse asiassa tämä ymmärrys on epätarkkaa, Kun ymmärrät tämän, tunnet ymmärtämättömyyttä), joten tutkin tätä aihetta perusteellisesti.
Testi on seuraava:
Tällä on eri arvoja eri funktioiden käyttötarkoituksiin. Yleisesti ottaen tämä on ympäristöobjekti, jossa funktio suoritetaan. Tämän käyttöä käsitellään yksityiskohtaisesti neljässä tilanteessa.
Tapaus 1: Puhtaat funktiokutsut
Tämä on yleisin funktion käyttötapa, ja kyseessä on globaali kutsu, joten tämä edustaa globaalia objektia. Katso alla olevaa koodia, se toimii tuloksella 1.
Tapaus 2: Kutsu objektina metodina
Funktiota voidaan kutsua myös objektin metodiksi, jolloin tämä viittaa vanhempiobjektiin.
Tapaus 3 Kutsu konstruktorina
Niin sanottu konstruktori tarkoittaa, että tämän funktion kautta voidaan generoida uusi olio. Tässä vaiheessa tämä viittaa tähän uuteen esineeseen.
Suorituksen tulos on 1. Osoittaaksemme, ettei tämä ole globaali objekti tällä hetkellä, teemme joitakin muutoksia koodiin:
Ajon tulos on 2, mikä osoittaa, että globaalin muuttujan x arvo ei ole muuttunut lainkaan.
Tapaus 4 hae kutsu
apply() on funktion metodi, joka muuttaa funktion kutsuvaa objektia. Sen ensimmäinen parametri edustaa muutettua objektia, joka kutsuu funktiota. Siksi tämä viittaa tähän ensimmäiseen parametriin.
Kun apply()-parametri on tyhjä, globaali objekti kutsutaan oletuksena. Näin ollen juoksun tulos on 0, mikä todistaa, että tämä viittaa globaaliin objektiin.
Jos muutat viimeisen koodin rivin muotoon
Juokseva tulos on 1, mikä todistaa, että tämä edustaa objektia obj.
(Loppu)
Viittaus:
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
|