![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 02.10.2018
Сообщений: 110
|
![]()
Доброго времени суток уважаемые форумчане!
Подскажите пожалуйста, есть ли решение следующей проблемы и если есть то какое: Есть необходимость по определенному условию вызывать определенную фун-ю на js. Придумал создать коллекцию Мар следующего вида: Код:
Код:
Ну понятно, надеюсь, что kod получается определенными действиями и в конце принимает значение одного из ключей. Можно, конечно через if.... Но функций около 20 штук.... Вопрос: 1. Можно ли в принципе так делать? 2. Что вообще можно сделать? С уважением И надеждой на помощь.........
С уважением
Gronik |
![]() |
![]() |
![]() |
#2 |
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
![]()
1. можно. Задавай значением не строку, а ссылку на функцию, тогда вызовешь её по
Код:
1. "АА" будет объектом, так что let к нему применять не правильно, юзай const. 2. "АА" — так не именуют переменные и константы. Пиши осознанные имена. 3. "kod" — не пиши транслитом, залезай в гугло/яндекс переводчик и ищи подходящее имя для переменной. Тут бы подошло "code". 4. "fone, ftwoo, fthree, ftwenty" — отделяй префикс. В случае названий функций принято использовать lowerCamelCase-синтаксис. То есть первая буква первого слова маленькая, остальные слова начинаются с большой буквы. *1. На самом деле можно так сделать, но с твоими знаниями тебе это рано знать. Я не дам ядерную бомбу в руки новичка. Когда ты изучишь то, что я тебе и так дал, сам разберешься, что это тебе не нужно и почему это было бы плохим решением. Удачи =)
Alar, верни репу!
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 02.10.2018
Сообщений: 110
|
![]()
Решение найдено.
Большое спасибо Naive, за указания на недостатки! Учел. Внимательнее почитал здесь: https://learn.javascript.ru/intro. Спасибо Илье Кантору!!!! Результат с учетом критики. Это работает: Код:
result[code](); Естетственно, прежде чем оперировать ссылками на функции - функции надо бы определить. И последнее, извините Naive! Но все же это мне нужно...... Пока так думаю....
С уважением
Gronik Последний раз редактировалось Вадим Мошев; 26.09.2019 в 10:45. |
![]() |
![]() |
![]() |
#4 |
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
![]()
Нет, не нужно
![]() Ты сделал все правильно. 1 со звездочкой относилось к твоему первому сообщению, мол так сделать можно, но лучше не стоит.
Alar, верни репу!
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 02.10.2018
Сообщений: 110
|
![]()
Naive!!!
Вы интересный человек!!!! Вы лучше меня знаете что мне нужно...Хотя...учитывая Ваш опыт... Попробую убедить прежде всего себя. Альтернативу приведенного выше кода с настоящими именами функций, я вижу только так: Код:
Если Вы знаете другое решение - буду очень благодарен.
С уважением
Gronik Последний раз редактировалось Gronik; 27.09.2019 в 10:04. |
![]() |
![]() |
![]() |
#6 | ||
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
![]()
В программировании существуют 2 таких интересных понятия, как лучшие практики (best practices) и плохие практики (bad practices). Создание туевы хучи глобальных переменных, а к этому ведет вопрос про 1*, является плохой практикой, так как нарушает один из базовых принципов программирования — инкапсуляцию. Разумеется, избежать этой практики не всегда возможно. Но где можно, этим надо пользоваться. К примеру, существует такая техника, как JSONP, в ней невозможно обойтись без создания глобальных функций. Но во-первых имя функции там хешируется, так что возможность повтора скидывается к шансу 1 на 64 миллиона, и во-вторых проверяется возможность повтора. И соответственно все это укладывается в самый далекий блэкбокс, до куда обычный пользователь библиотек врят ли когда-нибудь вообще доберется. В данном случае я говорю про jQuery или про полифилы метода fetch.
Цитата:
советую присмотреться к технологии webpack. Цитата:
Выдавай из пыха списки, в виде JSON. Попробуй jQuery.ajax — как самое простое решение для новичка. Если осилишь webpack, то он самостоятельно тебе заполифилит fetch. Это со стороны фронтенда. Со стороны бэка тебе нужно будет выдавать только список в формате JSON. Когда я был фуллстэком и писал всякую мелочь на PHP, именно так и поступал.
Alar, верни репу!
|
||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Функции в языке С. Передача параметров в функции. Создание многофайловых проектов | fifaman | Общие вопросы C/C++ | 6 | 28.12.2014 15:30 |
Табулирование заданной функции и определение максимального и минимального значения функции в таблице | Марина1986 | C/C++ Сетевое программирование | 0 | 07.05.2013 11:31 |
Использование подпрограммы-функции: Вычислить значение функции (Турбо паскаль) | RealUnited | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 05.12.2012 20:34 |
Построение графика функции, мигание(затухание) шарика в минимумах функции | kas1m_rus | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 27.05.2012 20:28 |
Как подменить адрес возврата функции func на адрес функции f используя переполнение буфера buf и функции gets | dmitrii6120 | Помощь студентам | 6 | 14.11.2011 20:10 |