Ich habe einige Eigenschaften in einem Objekt, das ich dem globalen Namespace hinzufügen möchte. In Javascript im Browser könnte ich es einfach zum window
-Objekt wie folgt hinzufügen:
Aber da Rhino nicht das globale Fensterobjekt hat, kann ich das nicht tun. Gibt es ein äquivalentes Objekt oder eine andere Möglichkeit, dies zu erreichen?
Ich fand eine ziemlich brillante Lösung bei NCZOnline :
%Vor%Der Schlüssel zu dieser Funktion ist, dass das Objekt immer auf das globale Objekt zeigt, wenn Sie
call()
oderapply()
verwenden und Null als erstes Argument übergeben. Da ein Nullbereich nicht gültig ist, fügt der Interpreter das globale Objekt ein. Die Funktion verwendet eine innere Funktion, um sicherzustellen, dass der Bereich immer korrekt ist.
Anruf mit:
%Vor% glob
gibt dann [object global]
in Rhino zurück.
Sie könnten einfach Ihr eigenes Objekt window
als Variable auf oberster Ebene definieren:
Sie können dann nach Belieben Werte zuweisen. (" window
" ist jedoch in dieser Situation wahrscheinlich nicht der beste Variablenname.)
Siehe auch: Kann ich ein 'window'-Objekt für Javascript erstellen, das in der Java6 Rhino Script Engine ausgeführt wird
?Tags und Links javascript rhino