169 похожих чатов

Коллеги, а почему тут в логах undefined , а не

global?
const a = "globals";

let someObj = {
a: "local",
b: setTimeout( function(){ console.log(this.a)}, 0)
}

someObj.b;

25 ответов

6 просмотров

Ну ты просто обращаешься по ключу b

в колбеке таймаута будет this === window

Евгений-Гений Автор вопроса
va1
в колбеке таймаута будет this === window

а const a = "globals"; разве не в window?

Евгений-Гений Автор вопроса
va1
Нет

а если не секрет где? как это область называется в консоле хрома и в ноде?

Евгений Гений
а если не секрет где? как это область называется в...

Const let в какойто отдельной области хранятся и просто так к ним нет доступа по типу window.a. Я только ене помню как эта штука называется да и не важно оно

Евгений-Гений Автор вопроса
va1
в колбеке таймаута будет this === window

а так почему андефайнд? стелочные функции работают там где описаны, верно? const a = "globals"; let someObj = { a: "local", b: ()=> setTimeout( () => { console.log(this.a)}, 0) } someObj.b();

Евгений Гений
а так почему андефайнд? стелочные функции работают...

правильно это будет работать, если сделать b обычной функцией

Ксяу Ка
правильно это будет работать, если сделать b обычн...

Вроде нет, this после микрозадачи будет глобальным все равно. bind вроде должен такие проблемы решать

Евгений Гений
а так почему андефайнд? стелочные функции работают...

Потому что движок не внутри обьекта инициализирует стрелку, а сначало инициализирует обьект const a = {} потом (утрированно): a.b = () => {} и в момент инициализации стрелочной функции в данном примере мы находимся всё там же - в window

Ксяу Ка
локальная область видимости

не, тут про declarative environmental record и lexical environment object имелось ввиду. То есть где хранится в браузере

Ксяу Ка
каким образом применить бинд на стрелу?)

В смысле сделать b методом не стрелочным, и сет таймаут через bind

Дмитрий Н.
В смысле сделать b методом не стрелочным, и сет та...

надо b делать обычной функцией, а в таймауте стрелу

Дмитрий Н.
или bind(this), одинаково)

как тут говорили.. да, можно чесать левое ухо через правое колено)

Ксяу Ка
как тут говорили.. да, можно чесать левое ухо чере...

bind метод надёжнее и лаконичнее(для меня) , особенно в классах. Так что сравнение некорректно.

Дмитрий Н.
bind метод надёжнее и лаконичнее(для меня) , особе...

ну если хочется пользоваться деструктуризацией, делегированием метода, то да, согласна. тут бы попроще человеку обьяснить, а вы его на амбразуру))

Ксяу Ка
ну если хочется пользоваться деструктуризацией, де...

не понял причем тут деструктуризация, я тоже новичок)

Дмитрий Н.
не понял причем тут деструктуризация, я тоже нович...

если не биндить в круговую, как вы мне сказали, что при делигировании, что при деструктуризации контекст потеряете

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Good afternoon, I just started learning php in conjunction with mysql. I am registering a system on a local Mamp server using phpMyAdmin. It seems to be stored normally in the...
ManGo
1
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Добрый день! Такая проблема возникла, написал код на Python, который компилирует, собирает и запускает файлы .s А в случае работы нужно то же самое делать для .asm Чем эти фа...
A Mori
5
Всем привет! procedure TForm1.FormCreate(Sender: TObject); type TStartEnd = record S: Byte; E: Byte; end; var a, b: TStartEnd; begin {1} a.S := 1; {2} a.E := 2; ...
Руслан Михайлович
10
Карта сайта