Ein früherer Entwickler bei uns hat eine eigene Javascript Engine implementiert, die wir gerne durch Nashorn ersetzen würden.Erweiterung der Nashorn ecma Engine um neue Operatoren und Typen hinzuzufügen
Er hat eine Teilmenge des ECMA-Standards implementiert, also sollte es in der Theorie eine recht einfache Operation sein, außer dass er die Sprache leicht erweitert hat!
Am besten durch ein Beispiel der Syntax erklärt, die seine Sprache unterstützen kann.
var today = now(); //create a proprietary object that represents time
var tomorrow = today + 1d; //Add a day. NOTE 1h is NOT a constant
Wie er
zu seiner eigenen Zeit Klasse Überlastung- hinzugefügt Operator hat gesehen werden.
- Ein neuer 'Typ' der Zahl eingeführt, der eine Zeitdauer darstellt Dieser Typ kann mit Mustern wie 1d, 3d4h5s, 1h, 5m usw. instanziiert werden. Der Code weiß, wie man diese Zahlen für die Zeit addiert/subtrahiert!
Der äquivalent würde Javascript-Code
seinevar today = now(); //create a proprietary object that represents time
var tomorrow = today.plus(new Duration('1d')); //Add a day.
Ich mag würde wissen, ob Nashorn keinen ‚Haken‘ hat, so dass wir die Sprache mit diesen ‚Funktionen‘ erweitern können oder müssen wir alle neu schreiben unsere Skripte?
Dank
Richard
Sie können Date() s (irgendwie) tatsächlich so verwenden, wenn Sie nur die Konstanten hatten; H1 = 1000 * 60 * 60; alarm (neues Datum (+ neues Datum() + H1)) ' – dandavis
H1 ist keine Konstante. Es ist eigentlich eine Art von Nummer. – richard