Size: a a a

JavaScript — русскоговорящее сообщество

2020 October 30

a

allpeg in JavaScript — русскоговорящее сообщество
источник

АМ

Александр Матчин... in JavaScript — русскоговорящее сообщество
Здравствуйте!
Есть код
https://codepen.io/bruha1991/pen/vYKRNob?editors=1112
Почему в строке sayHelloWindow: hello.bind(this) this=window а не person?
источник

in JavaScript — русскоговорящее сообщество
Александр Матчин
Здравствуйте!
Есть код
https://codepen.io/bruha1991/pen/vYKRNob?editors=1112
Почему в строке sayHelloWindow: hello.bind(this) this=window а не person?
Потому что в строке sayHelloWindow: hello.bind(this) у тебя this == globalThis == window, а не person
источник

SD

Sandy De Chavez in JavaScript — русскоговорящее сообщество
hmm that's odd
источник

꧁岡

꧁倫太郎 岡部꧂... in JavaScript — русскоговорящее сообщество
Sandy De Chavez
hmm that's odd
@Atassis спроси его, не бот ли он.
А то боты с рандомными мессагами повылезали
источник

АМ

Александр Матчин... in JavaScript — русскоговорящее сообщество
Здравствуйте!
Читаю МДН область действия и область видимости функции это одно и тоже?

"Это пример так называемой лексической области видимости (lexical scoping): в JavaScript область действия переменной определяется по её расположению в коде (это очевидно лексически), и вложенные функции имеют доступ к переменным, объявленным вовне. Этот механизм и называется Lexical scoping (область действия, ограниченная лексически)."
источник

DM

Denys Mikhalenko in JavaScript — русскоговорящее сообщество
Александр Матчин
Здравствуйте!
Читаю МДН область действия и область видимости функции это одно и тоже?

"Это пример так называемой лексической области видимости (lexical scoping): в JavaScript область действия переменной определяется по её расположению в коде (это очевидно лексически), и вложенные функции имеют доступ к переменным, объявленным вовне. Этот механизм и называется Lexical scoping (область действия, ограниченная лексически)."
Я посмотрел оригинал статьи - это нюансы перевода, в английской версии нет подобных терминов, это все фантазии переводчика
источник

DM

Denys Mikhalenko in JavaScript — русскоговорящее сообщество
This is an example of lexical scoping, which describes how a parser resolves variable names when functions are nested. The word lexical refers to the fact that lexical scoping uses the location where a variable is declared within the source code to determine where that variable is available.
переводится как
Это пример лексической области видимости, которая описывает как парсер разрешает имена переменных, когда функции вложены друг в друга. Слово "лексический" указывает на тот факт, что лексическая область видимости использует место в коде, где объявлена переменная чтобы определить где эта переменная доступна
Как видишь, ничего тут нет про область действия )
источник

АМ

Александр Матчин... in JavaScript — русскоговорящее сообщество
Denys Mikhalenko
This is an example of lexical scoping, which describes how a parser resolves variable names when functions are nested. The word lexical refers to the fact that lexical scoping uses the location where a variable is declared within the source code to determine where that variable is available.
переводится как
Это пример лексической области видимости, которая описывает как парсер разрешает имена переменных, когда функции вложены друг в друга. Слово "лексический" указывает на тот факт, что лексическая область видимости использует место в коде, где объявлена переменная чтобы определить где эта переменная доступна
Как видишь, ничего тут нет про область действия )
Мне если честно нужен был ответ на вопрос по поводу вот такого кода:
источник

DM

Denys Mikhalenko in JavaScript — русскоговорящее сообщество
что в этом коде вызывает вопросы?
источник

DM

Denys Mikhalenko in JavaScript — русскоговорящее сообщество
hello.bind(this) очевидно? )
источник

АМ

Александр Матчин... in JavaScript — русскоговорящее сообщество
Почему в строке sayHelloWindows: hello.bind(this)
this = window
источник

DM

Denys Mikhalenko in JavaScript — русскоговорящее сообщество
потому что в bind аргументом можно передать _что угодно_
источник

DM

Denys Mikhalenko in JavaScript — русскоговорящее сообщество
по сути что передашь в bind, то и будет в this у функции
источник

АМ

Александр Матчин... in JavaScript — русскоговорящее сообщество
Я полез в документацию и нашел такое:
ECMAScript 5 introduced Function.prototype.bind(). Calling f.bind(someObject) creates a new function with the same body and scope as f, but where this occurs in the original function, in the new function it is permanently bound to the first argument of bind, regardless of how the function is being used.
источник

DM

Denys Mikhalenko in JavaScript — русскоговорящее сообщество
в данном случае ты передаешь значение из this
источник

DM

Denys Mikhalenko in JavaScript — русскоговорящее сообщество
а оно = глобальный контекст
источник

DM

Denys Mikhalenko in JavaScript — русскоговорящее сообщество
тут надо понимать суть переменных
источник

DM

Denys Mikhalenko in JavaScript — русскоговорящее сообщество
они как оболочка для данных
источник

DM

Denys Mikhalenko in JavaScript — русскоговорящее сообщество
по умолчанию переменная this указывает на globalThis (window в браузере, global в nodejs и т.д.)
источник