Първо трябва да се каже, че смисълът на това не може да се определи при дефиниране на функцията, само когато функцията е изпълнена, може да се определи към кого сочи тя, всъщност крайната точка е обектът, който я призовава (има някои проблеми с това изречение и по-късно ще се обясни защо има проблем, въпреки че повечето статии в интернет казват това, макар че в много случаи няма да има проблем с това разбиране, но всъщност разбирането е неточно, Така че, когато разберете това, ще изпитате усещане за неразбиране), затова ще разгледам този въпрос в дълбочина.
Тестът е следният:
Това има различни стойности за различни цели на функциите. Общо взето, това е обектът на средата, в който се изпълнява функцията. Използването на това е обсъдено подробно в четири ситуации.
Случай 1: Чисти извиквания на функции
Това е най-честата употреба на функция и е глобално извикване, което представлява глобален обект. Вижте кода по-долу, той работи с резултат 1.
Случай 2: Метод за извикване като обект
Функцията може да се нарече и метод на обект, в който случай се отнася до родителския обект.
Случай 3 Извикване като конструктор
Така нареченият конструктор чрез тази функция може да се генерира нов обект. В този момент това се отнася до този нов обект.
Резултатът от бягането е 1. За да покажем, че това не е глобален обект в момента, правим някои промени в кода:
Резултатът от пробега е 2, което показва, че стойността на глобалната променлива x не се е променила изобщо.
Случай 4 за заявка
apply() е метод на функция, който променя извикващия обект на функцията. Първият параметър представлява променения обект, който извиква функцията. Следователно това се отнася до този първи параметър.
Когато параметърът apply() е празен, по подразбиране се извиква глобалният обект. Следователно резултатът от пробега е 0, което доказва, че това се отнася до глобалния обект.
Ако промените последния ред от кода на
Текущият резултат става 1, доказвайки, че това представлява обекта obj.
(Край)
Препратка:
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
|