Привязка против вызова

Метод bind() создает новую функцию, которая при вызове имеет ключевое слово this, установленное на предоставленное значение, с заданной последовательностью аргументов, предшествующей любым, предоставленным при вызове новой функции. [Source Mozilla]
Метод call() вызывает функцию с заданным значением this и аргументами, предоставленными индивидуально.

Поэтому, когда мы используем Bind, на выходе будет функция return. [Исправлено: console.log (helloBuddy.bind (человек, ’Разработчик пользовательского интерфейса’) ())]

Осторожно при использовании оператора if в Javascript

Что ж, я лично сталкивался с этой проблемой много раз, когда логику Javascript было довольно сложно понять, давайте посмотрим, почему randomUser - это число, а в противном случае консоль показывает условие else. (! typeof randomUser === 'string') будет разбит на 2 части - ›typeof randomUser === 'string' окажется истинным, но для того же типа '!' изменит это значение true на false, поэтому if (false) никогда не будет выполнен. Поверьте, сколько у вас опыта, вы очень часто будете попадать в эти условия.

this и стрелочная функция

Выражение функции стрелки - это компактная альтернатива традиционному выражению функции, но оно ограничено и не может использоваться во всех ситуациях.

Различия и ограничения:

  • Не имеет собственных привязок к this или super и не должен использоваться как methods.
  • Не содержит ключевых слов arguments или new.target.
  • Не подходит для методов call, apply и bind, которые обычно полагаются на установление области действия.
  • Нельзя использовать в качестве конструкторов.
  • Не может использовать yield внутри своего тела.

То же самое, что и в стрелочной функции, имеющей ссылку на глобальную область видимости. Когда мы используем this.email = email, устанавливается переменная в глобальной области видимости.

Источники:
https://developer.mozilla.org
https://www.youtube.com/channel/UCHx46rNCTVKAK4YY1A1eBAw