Я создаю движок AI для JS-игры, и это сделано из конечных машин. Я загружаю количество состояний и их значения переменных из XML. Я также хочу загрузить поведение, и поскольку у меня нет времени на создание языка сценариев, я подумал, что было бы неплохо «вставить» JS-код на внешние файлы (внутри узлов XML) и выполнить его на спрос.Динамическое создание функций в JS
Нечто подобное
<evilguy1>
<behaviour>
this.x++;
</behaviour>
<behaviour>
this.y++;
</behaviour>
</evilguy1>
Чтобы что-то вроде этого:
function behaviour_1(){
this.x++;
}
function behaviour_2(){
this.y++;
}
Мой вопрос, теперь, когда я код загружен, как я могу выполнить это? Я хотел бы создать функцию с уникальным именем для каждого «узла» кода, а затем вызвать их из логики игры, но я не знаю, возможно ли это (так как вы можете загрузить больше кода JS из HTML, вы также должен быть в состоянии сделать это из кода JS, нет?). Если нет, есть ли подобное решение? Заранее спасибо!
(PS: Чем меньше внешняя библиотека-зависимый, тем лучше)
Edit 1:
Итак, теперь я знаю, как создавать функции, чтобы содержать код
window[classname] = function() { ... };
Я думаю, что вам нужно разработать и, возможно, показать код ... – shennan
http://stackoverflow.com/questions/12964262/create-a-javascript-function-dynamically -from-a-string-name – Triode
'eval', но будьте осторожны, так как это зло. – numbers1311407