Ответ 1
Стандартные функции JS используют динамическое связывание, this
зависит от того, кто вызывает этот метод во время выполнения, поэтому, если мы его назовем с помощью role.test()
, он привяжет this
к role
.
Функции стрелок связывают this
с текущим контекстом. Например, если код был написан в консоли браузера, this
привязан к объекту window
. Это называется статической лексической привязкой, что означает привязку this
к закрытию, в котором она была определена.
Если вы не будете использовать функции стрелок, this
будет указывать на сам объект при вызове role
:
const role = {
test(variable){
this.toLog(variable);
},
toLog(variable) {
console.log(variable);
}
};
role.test(5);