Page 141 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 141
=
for ( l et i=this . name . l ength-1 ; i> O ; i - - ) {
e
nameBackwards += this . nam [ i ] ;
return nameBackwards ;
} ;
H
return ' $ { getReverseName ( ) } si eman ym , o lle ' ;
} ,
} ;
o . greetBackwards ( ) ;
У стрелочных функций есть еще два дополнительных отличия от обычных функ
ций: они не могут использоваться как конструкторы объекта (см. главу 9) и в них не
доступна специальная переменная arguments (в которой больше нет необходимости
благодаря оператору расширения).
Методы call, apply Ьind
и
Мы уже видели, что значение переменной this зависит от вызываемого контекста
(как и в других объектно-ориентированных языках). Но JavaScript позволяет опреде
лять, к чему привязана переменная this, независимо от того, как или где вызывается
рассматриваемая функция. Давайте начнем с метода call, который доступен во всех
функциях. Он позволяет вызывать функцию с определенным значением this.
const bruce = { name : "Bruce" } ;
const madeline = { name : "Mad l i ne" } ;
e
1 1 эта функция не связана ни с каким объектом,
1 1 но все же в ней используется ' t his ' !
function greet ( ) {
return ' П ривет ! Меня зовут $ { t his . n ame } ! ' ;
greet ( ) ; / / "Привет! Меня зовут ! " - ' t his ' не привязана
greet . c all ( b ruc ) ; // "Привет! Меня
e
зовут Bruce ! " - ' t his ' привязана к 'bruce '
greet . call (madeline ) ; / / "Привет! Меня зовут Madeline ! " - ' t his ' п р ивязана
/ / к 'madeline '
Как можно заметить, метод c a l l позволяет вызывать функцию, как будто это
метод, предоставляемый объектом, к которому привязана переменная this. Первый
аргумент метода call - это значение, к которому вы хотите привязать this, а все
остальные аргументы становятся аргументами вызываемой функции.
function updat ( birthYear, occupation )
e
this . birthYear = birthYear;
th s . occupation = occupation;
i
М етоды call, apply и Ьind 1 4 1

