Size: a a a

JavaScript Noobs — сообщество новичков

2021 April 16

N

November in JavaScript Noobs — сообщество новичков
но контекст выполнения создается уже при вызове, верно?
источник

j

jk in JavaScript Noobs — сообщество новичков
В целом зависит от того что ты делаешь, но в частности тебе спросить по поводу прав здесь
источник

PM

Pavel Mellonges® in JavaScript Noobs — сообщество новичков
Насчет прав я решил, хочу один скаченный плагин изменить, но вот эта жопа выходит
источник

j

jk in JavaScript Noobs — сообщество новичков
Во во. Термины смущают каждый раз.
источник

ei

export default - зло... in JavaScript Noobs — сообщество новичков
При вызове функции есть "caller" - тот, кто вызвал, а есть "callee" - тот, кто был вызван
И есть "callerContext" и "calleeContext", соответственно первое это текущий на момент вызова функции контекст выполнения, то есть внешний, а calleeContext - внутренний контекст выполнения, который будет у вызова функции

И вот этот внутренний контекст создается в PrepareForCall
У контекста должны быть ссылки на лексические окружения (они хранят разные переменные и специальные значения вроде this, и доп. мета данные)
Соответственно эти лексические окружения создаются при этом и их ссылки добавляются в новый контекст
источник

ei

export default - зло... in JavaScript Noobs — сообщество новичков
Надеюсь логичнее стало теперь)
источник

j

jk in JavaScript Noobs — сообщество новичков
Чем отличется "контекст" от "лексического окружения" и от "замыкания"?
источник

N

November in JavaScript Noobs — сообщество новичков
погоди, теперь ты говоришь, что лексическое окружение создается при вызове функции?
источник

ei

export default - зло... in JavaScript Noobs — сообщество новичков
Вот кстати тут
https://tc39.es/ecma262/#sec-newfunctionenvironment

Видно как в [[OuterEnv]] (это ссылка на родительское лексическое окружение в дереве) присваивается [[Environment]] из обьекта функции
источник

ei

export default - зло... in JavaScript Noobs — сообщество новичков
Я не говорил что оно создается при создании, это другой чел писал
источник

RO

Required Optional in JavaScript Noobs — сообщество новичков
я тебя видимо не совсем понимаю

let a = 10;

function b() {
 a += 10;
}

function c() {
 let a = 30;
 b();
 
}

c();


по твоему b() должна будет сослаться на внутреннюю переменную в с и увеличить её? У функции b есть собственное лексическое окружение и переменную a она возьмет оттуда, а не ту, что внутри с

Либо я тебя не понял, конечно)
источник

ei

export default - зло... in JavaScript Noobs — сообщество новичков
Контекст это просто локальный термин в зависимости от ситуации
источник

A

AFGM in JavaScript Noobs — сообщество новичков
у кого то есть готовый скрипт онлайн каталога товаров?
источник

j

jk in JavaScript Noobs — сообщество новичков
Т.е. не значит ничего.
источник

N

November in JavaScript Noobs — сообщество новичков
а, ой сорри, давай проясним, контекст выполнения и лексическое окружение создается только при ВЫЗОВЕ функции?
источник

ei

export default - зло... in JavaScript Noobs — сообщество новичков
Там используется как "контекст выполнения"
источник

RO

Required Optional in JavaScript Noobs — сообщество новичков
иными словами, функция привязана к тому месту, где была создана и замыкаться будет на те переменные, в рамках того окружения, где была создана, а не вызвана
источник

ei

export default - зло... in JavaScript Noobs — сообщество новичков
Оно вообще не только для функции создается
источник

j

jk in JavaScript Noobs — сообщество новичков
Я тоже запутался, братиш.
источник

ei

export default - зло... in JavaScript Noobs — сообщество новичков
Для обьектов, блоков кода тоже
источник