Visų pirma, reikia pasakyti, kad to esmė negali būti nustatyta apibrėžiant funkciją, tik vykdant funkciją galima nustatyti, į ką tai nurodo, iš tikrųjų galutinis taškas yra objektas, kuris jį vadina (yra tam tikrų problemų su šiuo sakiniu, ir vėliau bus paaiškinta, kodėl yra problema, nors dauguma straipsnių internete tai sako, nors daugeliu atvejų nebus problemų dėl to supratimo, bet iš tikrųjų tas supratimas yra netikslus, Taigi, kai tai suprasite, turėsite nesupratimo jausmą), todėl aš išnagrinėsiu šį klausimą nuodugniai.
Bandymas yra toks:
Tai turi skirtingas reikšmes skirtingiems funkcijų tikslams. Apskritai tai yra aplinkos objektas, kuriame vykdoma funkcija. Jo naudojimas išsamiai aptariamas keturiose situacijose.
1 atvejis: gryni funkcijų iškvietimai
Tai yra labiausiai paplitęs funkcijos naudojimas ir tai yra visuotinis iškvietimas, taigi tai reiškia globalų objektą. Pažvelkite į žemiau esantį kodą, jis veikia su rezultatu 1.
2 atvejis: iškvietimo kaip objekto metodas
Funkcija taip pat gali būti vadinama objekto metodu, tokiu atveju tai reiškia pirminį objektą.
3 atvejis: skambinkite kaip konstruktorius
Vadinamasis konstruktorius yra per šią funkciją galima sugeneruoti naują objektą. Šiuo metu tai reiškia šį naują objektą.
Bėgimo rezultatas yra 1. Norėdami parodyti, kad šiuo metu tai nėra visuotinis objektas, atliekame keletą kodo pakeitimų:
Vykdymo rezultatas yra 2, o tai rodo, kad visuotinio kintamojo x vertė visiškai nepasikeitė.
4 atvejis taikyti kvietimą
apply() yra funkcijos metodas, keičiantis funkcijos iškvietimo objektą. Pirmasis jo parametras reiškia pakeistą objektą, kuris iškviečia funkciją. Todėl tai reiškia šį pirmąjį parametrą.
Kai parametras apply() tuščias, visuotinis objektas iškviečiamas pagal numatytuosius nustatymus. Todėl vykdymo rezultatas yra 0, įrodant, kad tai susiję su visuotiniu objektu.
Jei paskutinę kodo eilutę pakeisite į
Bėgimo rezultatas tampa 1, įrodantis, kad tai reiškia objektą obj.
(Pabaiga)
Nuoroda:
Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.
|