Size: a a a

2020 December 05

iH

ioann Hide 🏋 in JS Liberty
persona x grata
Функция инкапсулирует данные внутри своей области видимости. Чтобы данные юзать вне функции надо их вернуть из функции
Тогда вызов самой функции это...?
источник

p

persona x grata in JS Liberty
ioann Hide 🏋
Тогда вызов самой функции это...?
Функция это объект способный выполнять действия с данными. Ее вызов создаёт контекст вызова в стеке вызовов. Функции хранятся в области памяти куча.
источник

iH

ioann Hide 🏋 in JS Liberty
Область куча это знакомо )
источник

p

persona x grata in JS Liberty
Функция может возвращать другие функции. Это функции высшего порядка.
источник

В

Виктория in JS Liberty
ioann Hide 🏋
Что значит функция возвращает?
Передает управление вызвавшему коду
источник

p

persona x grata in JS Liberty
Надо поглубже копнуть под капот жс) так подумал ещё не всё понимаю, как формируется абстрактное синтаксическое дерево, как точно работают интерпретатор и компилятор, разбивается код на токены.
Спеку кто-то прочитал полностью?)
источник

p

persona x grata in JS Liberty
Виктория
Передает управление вызвавшему коду
Передает эстафету однопоточности
источник

В

Виктория in JS Liberty
ioann Hide 🏋
Что значит функция возвращает?
Если опустить детали, то возврат из функции можно интерпретировать как изменение значения счетчика команд процессора на тот адрес в памяти, откуда была вызвана функция. Происходит возврат управления. Счетчик команд это указатель, регистр процессора, который хранит адрес на следующую инструкцию выполняемой программы.
источник

iH

ioann Hide 🏋 in JS Liberty
источник

᠌ ᠌ ᠌᠌᠌ ᠌ ᠌᠌᠌ ᠌ ᠌᠌᠌ ... in JS Liberty
Виктория
const swapi = (url) => (...path) =>
   fetch(`https://swapi.dev/api/${[url, ...path].join('/')}/`)
       .then((response) => response.ok
           ? response.json()
           : Promise.reject(`Could not fetch data from ${url}, received ${response.status}`))

const people = swapi('people');

people()
   .then((data) => {
       console.log('all people received', data)
   }).catch(console.error)

const id = 25
people(id)
   .then((data) => {
       console.log(`person by id ${id} received`, data)
   }).catch(console.error)
Ля. Благодарю)
источник

В

Виктория in JS Liberty
ioann Hide 🏋
Тогда вызов самой функции это...?
То же самое изменение значения счетчика команд, о котором уже говорилось. Отличие состоит в том, что на этот раз новое значение счетчика команд указывает на адрес в памяти, где хранится код вызываемой функции (основной код программы и код функций могут храниться в разных местах в памяти). Затем происходит выполнение этой функции, команда за командой, последовательно, пока не встретится оператор возврата, тогда произойдет примерно то, что я уже описала выше
источник

iH

ioann Hide 🏋 in JS Liberty
Виктория
То же самое изменение значения счетчика команд, о котором уже говорилось. Отличие состоит в том, что на этот раз новое значение счетчика команд указывает на адрес в памяти, где хранится код вызываемой функции (основной код программы и код функций могут храниться в разных местах в памяти). Затем происходит выполнение этой функции, команда за командой, последовательно, пока не встретится оператор возврата, тогда произойдет примерно то, что я уже описала выше
А оператором возврата что может быть?
источник

В

Виктория in JS Liberty
ioann Hide 🏋
А оператором возврата что может быть?
return
источник

iH

ioann Hide 🏋 in JS Liberty
источник

SV

Serhiy Vaschuk in JS Liberty
Как элегантно сократить код ?

function setControlParams(state) {
 if (state === 'start') {
   states.isStart = true;
   radioBtns.style.pointerEvents = 'none';
   startBtn.classList.add('disabled');
   stopBtn.classList.remove('disabled');
 }
 if (state === 'end') {
   states.isStart = false;
   radioBtns.style.pointerEvents = 'auto';
   startBtn.classList.remove('disabled');
   stopBtn.classList.add('disabled');
 }
}
источник

В

Виктория in JS Liberty
Ща сделаем
источник

В

Виктория in JS Liberty
Ух
источник

SV

Serhiy Vaschuk in JS Liberty
Виктория
Ща сделаем
источник

DE

Denis Efremov in JS Liberty
Serhiy Vaschuk
Как элегантно сократить код ?

function setControlParams(state) {
 if (state === 'start') {
   states.isStart = true;
   radioBtns.style.pointerEvents = 'none';
   startBtn.classList.add('disabled');
   stopBtn.classList.remove('disabled');
 }
 if (state === 'end') {
   states.isStart = false;
   radioBtns.style.pointerEvents = 'auto';
   startBtn.classList.remove('disabled');
   stopBtn.classList.add('disabled');
 }
}
function toggleControlParams() {
 states.isStart = states.isStart ? false : true;
 radioBtns.style.pointerEvents = radioBtns.style.pointerEvents === 'none'
   ? 'auto'
   : 'none';
 startBtn.classList.toggle('disabled');
 stopBtn.classList.toggle('disabled');
}
источник

SV

Serhiy Vaschuk in JS Liberty
оу, спасибо. Тоже похожее сделал :)
источник