Как вызвать Haxe скомпилированный JS из внешнего JavaScript?

Я скомпилировал свой проект Haxe JS, и он отлично работает. То, что у меня есть в Haxe, - это класс Main.

Теперь мне нужно вызвать статическую функцию из скомпилированного Haxe Main. Я попытался назвать это следующим образом:

Main.init();

Но я получаю

Неподготовлено ReferenceError: Main не определен

Когда я просматриваю свой скомпилированный JavaScript script из Haxe, я вижу, что Main заключен в нечто подобное:

(function () { "use strict";
var Main = function() {

Итак, как достичь Main от внешнего кода JavaScript?

2 ответа

Вы можете использовать:

@:expose class MyClass

В верхней части вашего класса, чтобы сделать его доступным.

Подробнее см. здесь http://haxe.org/manual/target-javascript.html, http://philippe.elsass.me/2014/11/vanilla-haxe-js/ и http://old.haxe.org/doc/js/modern


Установка переменной внутри (function(){ /*code*/ })(); означает, что для этой функции будет использоваться только область.

Объявите переменную за пределами закрытия и она станет глобальной:

var Main;
(function() { "use strict";
 Main = function() {}
})();

licensed under cc by-sa 3.0 with attribution.