Всем привет! Я мастер интерфейса Up. Осадный лев интерфейса с чистотой кода (ха-ха, жизнь неаккуратна (* ̄︶ ̄))
Я полагаю, что многие мелкие партнеры спросят, как изменить направление этого в интервью, и тогда вы скажете:call、apply、bind
. Вот так! Затем он начал ввести разницу между этими тремя
- Интервьюер: Вы просто спрашиваете?
- Front-end Up master: Спросите вы или нет, сегодня я напишу это от руки!
Так! под! Начинать!
что это
Понятие: контекст выполнения, это обычно существует в функции, указывая на контекст выполнения текущей функции.Если функция не выполняется, то это не имеет содержимого, и это связывается только после выполнения функции.
Ключевой момент: this может указывать только на объект, не забывайте, что Array также является объектом особого типа.
К кому это относится?
При выполнении по умолчанию
Картинка стоит тысячи слов, посмотрите на картинку!
При неявном выполнении
Изменить контекст выполнения функции
параметр функции
параметр таймера
Объект события DOM
массив аргументов класса
новая привязка
при явном выполнении
подсказка: постучите по доске, в центре внимания этой статьи находится здесь, когда она явно выполняется, она обычно делится на две категории
- Временно изменить этот указатель => применить вызов
- Навсегда измените это, чтобы указать на => bind
использование вызова
использование применения
Использование привязки
Реализовать вызов вручную
Прежде чем реализовать его, давайте проанализируем, что он сделал
- Направьте человека на окно
- функция вызова сказать
- вернуть результат
Начать реализацию:
Установлен на прототипе функции:
Но есть еще важная проблема, вызов может носить несколько заданных параметров, для выполнения следующих двух шагов:
- Первый параметр — это имя объекта, на который нужно указать.
- Остальные параметры нужно передать в вызываемый метод
Обобщить метод и смонтировать его на прототипе
Вызов осуществляется от руки, затем мы начинаем применять рукописный ввод
Реализовать применение вручную
Метод применения вызывает функцию или метод, используя указанное значение this и массив значений указанных параметров.
Принцип и реализация применения примерно такие же, как и у вызова, разница в том, что второй и последующие параметры применения помещаются в массив для передачи параметров, и нам нужно лишь немного изменить предыдущий код.
заключительные замечания
Чтобы узнать, как реализовать привязку вручную, заинтересованные студенты могут посмотреть в частном порядке.
На этом статья окончена, если вы считаете, что она вам полезна, то добавьте в редактор куриную ножку (лайк, комментарий).