Size: a a a

2021 January 05

i

ik in javascript_ru
+, крутые объяснения
источник

w

whyamsx in javascript_ru
Денис, а если на собесе спросят типа скажи что такое this, как коротко ответить на этот вопрос?
источник

DM

Denys Mikhalenko in javascript_ru
this - это так называемый контекст исполнения функции
источник

DM

Denys Mikhalenko in javascript_ru
но по факту, как я уже сказал, он от обычных аргументов отличается не особо, основное отличие состоит в том, что в то время как остальные аргументы передаешь ты сам, this передает js
источник

DM

Denys Mikhalenko in javascript_ru
И есть определенные правила в спеке, которые определяют, что именно в этот this передаст js
источник

DM

Denys Mikhalenko in javascript_ru
Для программиста же этот аргумент недоступен и скрыт и менять его можно только с помощью специальных функций call, apply и bind
источник

DM

Denys Mikhalenko in javascript_ru
Denys Mikhalenko
this - это так называемый контекст исполнения функции
Я думаю, что на собеседовании от тебя будут ждать вот это 👆
источник

w

whyamsx in javascript_ru
ну в this передается тот объект, в который обвернут этот this в месте его вызова

и всё начинается с объекта window

объяснил фигово но я близко к правде да?
источник

DM

Denys Mikhalenko in javascript_ru
Нет
источник

DM

Denys Mikhalenko in javascript_ru
То, что передается в this определяется спекой
источник

DM

Denys Mikhalenko in javascript_ru
Раньше спека говорила - суй туда global scope - вот js и совал window
источник

DM

Denys Mikhalenko in javascript_ru
Потом концепция поменялась 😁 и в спеке написали - суй туда null
источник

w

whyamsx in javascript_ru
ну если в консоль логе ввести this то получаешь window
источник

DM

Denys Mikhalenko in javascript_ru
Теперь вызов foo() даст в ней null в this
источник

DM

Denys Mikhalenko in javascript_ru
Потому что ты не в strict mode
источник

w

whyamsx in javascript_ru
ааа
источник

w

whyamsx in javascript_ru
вот оно как
источник

DM

Denys Mikhalenko in javascript_ru
Он включен для модулей
источник

DM

Denys Mikhalenko in javascript_ru
Либо ты можешь включить его сам, вот так
function() {
 'use strict'
}
источник

w

whyamsx in javascript_ru
use strict это не то?
источник