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

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

global?
const a = "globals";

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

someObj.b;

25 ответов

23 просмотра

Ну ты просто обращаешься по ключу 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 метод надёжнее и лаконичнее(для меня) , особе...

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

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

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта