Forwarded from Tech | YeaHub & Reactify
#tech #JavaScript #this
Стрелочные функции и this
💡 Стрелочные функции не имеют своего собственного this. Вместо этого они захватывают this из окружающего контекста в момент своего создания. Это поведение называется "лексическим this".
✍️ Когда вы используете стрелочную функцию в конструкторе, this внутри стрелочной функции указывает на экземпляр объекта, который создается с помощью этого конструктора.
Пример использования в методе объекта:
💡 Если стрелочная функция определена как метод объекта (вне конструктора), то this внутри стрелочной функции будет зависеть от контекста, в котором эта стрелочная функция была определена, а не от контекста вызова.
✍️ В этом примере стрелочная функция makeSound определена в глобальном контексте (или контексте модуля в Node.js), где this будет undefined (в строгом режиме) или объектом глобального контекста (в нестрогом режиме), но не объектом obj.
Итог:
✔️ В конструкторе: Стрелочная функция захватывает this из контекста вызова конструктора, что позволяет правильно ссылаться на свойства экземпляра объекта.
✔️ В методе объекта: Стрелочная функция захватывает this из контекста своего определения, что часто приводит к undefined или некорректному значению this.
Автор: @reactify_IT
👍 Вступай в сообщество
Стрелочные функции и this
💡 Стрелочные функции не имеют своего собственного this. Вместо этого они захватывают this из окружающего контекста в момент своего создания. Это поведение называется "лексическим this".
function Animal(name, sound) {
this.name = name;
this.sound = sound;
this.makeSound = () => {
console.log(`${this.name} says ${this.sound}`);
};
}
const dog = new Animal('Dog', 'Woof');
dog.makeSound(); // 'Dog says Woof'
✍️ Когда вы используете стрелочную функцию в конструкторе, this внутри стрелочной функции указывает на экземпляр объекта, который создается с помощью этого конструктора.
Пример использования в методе объекта:
💡 Если стрелочная функция определена как метод объекта (вне конструктора), то this внутри стрелочной функции будет зависеть от контекста, в котором эта стрелочная функция была определена, а не от контекста вызова.
const obj = {
name: 'Dog',
sound: 'Woof',
makeSound: () => {
console.log(`${this.name} says ${this.sound}`);
}
};
obj.makeSound(); // undefined says undefined
✍️ В этом примере стрелочная функция makeSound определена в глобальном контексте (или контексте модуля в Node.js), где this будет undefined (в строгом режиме) или объектом глобального контекста (в нестрогом режиме), но не объектом obj.
Итог:
Автор: @reactify_IT
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥4😢2💯2
Forwarded from Tech | YeaHub & Reactify
#tech #dns #network
Как браузер ищет нужный ресурс по доменному имени в строке браузера и почему после покупки домена мы не сразу можем получить доступ к ресурсам?
Когда вы вводите URL в строку браузера, происходит ряд шагов на уровне DNS (Domain Name System):
1️⃣ Проверка кэша DNS:
Браузер сначала проверяет свой локальный кеш DNS, чтобы узнать, не сохранен ли там IP-адрес, связанный с введенным URL. Если он есть, процесс разрешения DNS на этом этапе завершается, и браузер использует найденный IP-адрес для установления соединения.
Мы можем посмотреть локальный кэш в браузере. На примере Chrome:
2️⃣ Запрос к ОС:
Если IP-адрес не найден в кеше браузера, он отправляет запрос операционной системе. ОС также имеет собственный кеш DNS, который проверяется следующим шагом.
Чтобы посмотреть кэш windows: откройте командную строку и введите
- данные скопируются в буфер обмена, после чего вставьте в блокнот и посмотрите результат (например поиск vk.com)
3️⃣Запрос к рекурсивному DNS-серверу:
Если ни в одном из кешей нет нужного IP-адреса, операционная система передает запрос к настроенному DNS-серверу (обычно это сервер вашего интернет-провайдера).
4️⃣Корневые DNS-серверы и далее через иерархию до авторитетного DNS-сервера запрашиваемого домена.
5️⃣Если IP-адрес найден, он возвращает его операционной системе, а затем браузеру.
Почему, когда вы покупаете domain, привязываете его к ip-адресу, но не сразу можете зайти на сайт под доменным именем?
Базы данных DNS хранятся на каждом DNS-сервере по всему миру и эти серверы обращаются за обновлениями к нескольким серверам, называемым "authoritative name server" или "корневой DNS-сервер". Когда ваш регистратор создаёт или обновляет информацию о зарегистрированном домене, она должна обновиться во всех DNS-базах. Каждый DNS-сервер хранит информацию о домене фиксированное количество времени, а затем автоматически обновляет её (DNS-сервер запрашивает корневой сервер снова). Соответственно, обновление баз занимает какое-то время, пока информация о новых или изменённых доменах распространяется по Интернету.
Существует так называемое Время распространения. Тем не менее эта задержка не означает, что за это время доменное имя обновит само себя на всех серверах сверху донизу. Очень часто DNS-сервер, запрашиваемый вашим компьютером не знает конкретного домена и запрашивает о нём корневые DNS-сервера по мере требования.
Автор: @crypto_bubblezz
👍 Вступай в сообщество
Как браузер ищет нужный ресурс по доменному имени в строке браузера и почему после покупки домена мы не сразу можем получить доступ к ресурсам?
Когда вы вводите URL в строку браузера, происходит ряд шагов на уровне DNS (Domain Name System):
1️⃣ Проверка кэша DNS:
Браузер сначала проверяет свой локальный кеш DNS, чтобы узнать, не сохранен ли там IP-адрес, связанный с введенным URL. Если он есть, процесс разрешения DNS на этом этапе завершается, и браузер использует найденный IP-адрес для установления соединения.
Мы можем посмотреть локальный кэш в браузере. На примере Chrome:
chrome://net-internals/?#dns
Указываем адрес, например vk.com, если в кэше есть данные об этом домене, получим в ответе
Resolved IP addresses of "vk.com": ["87.240.137.164","87.240.132.78","93.186.225.194","87.240.132.67","87.240.129.133","87.240.132.72"].
No alternative endpoints.
Если нет, то будет пусто или ошибка.
2️⃣ Запрос к ОС:
Если IP-адрес не найден в кеше браузера, он отправляет запрос операционной системе. ОС также имеет собственный кеш DNS, который проверяется следующим шагом.
Чтобы посмотреть кэш windows: откройте командную строку и введите
ipconfig /displaydns | clip
- данные скопируются в буфер обмена, после чего вставьте в блокнот и посмотрите результат (например поиск vk.com)
3️⃣Запрос к рекурсивному DNS-серверу:
Если ни в одном из кешей нет нужного IP-адреса, операционная система передает запрос к настроенному DNS-серверу (обычно это сервер вашего интернет-провайдера).
4️⃣Корневые DNS-серверы и далее через иерархию до авторитетного DNS-сервера запрашиваемого домена.
5️⃣Если IP-адрес найден, он возвращает его операционной системе, а затем браузеру.
Почему, когда вы покупаете domain, привязываете его к ip-адресу, но не сразу можете зайти на сайт под доменным именем?
Базы данных DNS хранятся на каждом DNS-сервере по всему миру и эти серверы обращаются за обновлениями к нескольким серверам, называемым "authoritative name server" или "корневой DNS-сервер". Когда ваш регистратор создаёт или обновляет информацию о зарегистрированном домене, она должна обновиться во всех DNS-базах. Каждый DNS-сервер хранит информацию о домене фиксированное количество времени, а затем автоматически обновляет её (DNS-сервер запрашивает корневой сервер снова). Соответственно, обновление баз занимает какое-то время, пока информация о новых или изменённых доменах распространяется по Интернету.
Существует так называемое Время распространения. Тем не менее эта задержка не означает, что за это время доменное имя обновит само себя на всех серверах сверху донизу. Очень часто DNS-сервер, запрашиваемый вашим компьютером не знает конкретного домена и запрашивает о нём корневые DNS-сервера по мере требования.
Автор: @crypto_bubblezz
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥4❤2💯1