При использовании строки для вызова функции из другой функции, как бы go об этом? - PullRequest
0 голосов
/ 12 марта 2020

Для ясности:

Пользователь никогда не будет ожидать ввода кода. Пользовательские вводы, помимо настройки имени (которые настроенные имена НИКОГДА не будут запускаться через код), будут ограничены нажатием кнопок (которые затем потенциально активируют функции, ожидающие в записях базы данных).

У меня есть один определенный конструктор в моем коде javascript, и, по сути, будет иметь базу данных, которая позволяет пользователю определенные входные данные, будь то предварительно определенные входные данные (большую часть времени), которые будут выполнять другой код или настраиваемые входные данные (которые никогда не будут иметь потенциала изменить все, что может выполнить код).

Примером может быть следующий код: new DatabaseItem("511", ["feat", "general", "1"], "Armor Proficiency", ["description", "if(database[5][0][0].returnData().includes(0)){possible=["500","Cancel"];database[5][0][0].forEach(function tempFunction(value,index){if(value==0){possible.push(index);}});}else{database[5][0][0].addTrait("invalid");alert("No eligible targets. Please select another feat.");}"])

, который создаст новый элемент DatabaseItem в позиции 511 с чертами «feat», «general» «1»; звание «Мастерство брони»; и данные «описания» и будут выполнять следующий код при запуске:

if(database[5][0][0].returnData().includes(0)) {
    possible = ["500", "Cancel"];
    database[5][0][0].forEach(
        function tempFunction(value, index) {
            if(value==0) {possible.push(index);}
        }
    );
} else {
    database[5][0][0].addTrait("invalid");
    alert("No eligible targets. Please select another feat.");
}

Затем после того, как пользователь выбирает выбор (будь то «Отмена» или один из допустимых индексов), предполагая, что выбор был допустим, во-первых, он будет выполнять больше кода на основе выбора пользователя.

На основании прочитанного, функция eval () будет работать (но обычно считается небезопасной), но Function () также может работать. Каков будет рекомендуемый порядок действий?

Соответствующая информация:

- это автономное приложение на основе веб-страницы. Инфраструктура предоставляется в файле html, и это отрывок из файла js.

- ничего не сохраняется после закрытия веб-страницы. Сохраненные данные генерируются с помощью savestring, которая реализует изменения, сделанные пользователем, и позиции указанных изменений, которые пользователь затем может свободно копировать в текстовый файл. Неверные savestrings будут отклонены загрузчиком.

...