Предыдущий разработчик в нашей компании внедрил собственный движок JavaScript, который мы хотели бы заменить на Nashorn.Расширение мотора Nashorn ecma для добавления новых операторов и типов
Он реализовал подмножество стандарта ECMA, поэтому теоретически это должна быть довольно простая операция, за исключением того, что он немного расширил язык!
Лучшее объясняется примером синтаксиса, который может поддерживать его язык.
var today = now(); //create a proprietary object that represents time
var tomorrow = today + 1d; //Add a day. NOTE 1h is NOT a constant
Как можно видеть, что он имеет
- добавил оператор перегрузки для своего класса времени.
- Введен новый «тип» номера, представляющий продолжительность времени. Этот тип может быть создан с помощью шаблонов, таких как 1d, 3d4h5s, 1h, 5m и т. Д. Код знает, как добавлять/вычитать эти числа за время!
Эквивалент Javascript код будет
var today = now(); //create a proprietary object that represents time
var tomorrow = today.plus(new Duration('1d')); //Add a day.
Я хотел бы знать, если Nashorn имеет какие-либо «крючки», так что мы можем расширить язык с этими «особенностями», или мы должны переписать все наши скрипты?
Благодаря
Richard
Фактически вы можете использовать Date() s (kinda), если у вас были только константы; 'H1 = 1000 * 60 * 60; alert (новая дата (+ новая дата() + H1)) ' – dandavis
H1 не является константой. На самом деле это тип номера. – richard