Ответ 1
Если вы посмотрите http://himera.herokuapp.com/synonym.html, вы можете найти конкретный синтаксис для создания объектов в clojurescript.
Я написал эту библиотеку js mock, основанную в этой документации, чтобы сделать тест:
function Person(name) {
this.name = name;
}
Person.prototype.greet = function() {
return "Hello, " + this.name;
};
var f={
"hola":"hola juan",
Person:Person
};
var person=new f.Person("Juan");
alert(person.greet());
Затем из clojurescript вы должны использовать точечный синтаксис (но префикс "js/" ваш глобальный тип js):
(let [Person (.-Person js/f)
juan (Person. "Juan")
]
(.log js/console (.greet juan)))
Я не упоминаю в этом ответе: externs свойство вашей компиляции cljsbuild beacuse Я понимаю, что вы включаете библиотеку js script непосредственно в свой html-заголовок. Итак, если эта строка работает для вас (js* "new Library.Thing()")
, это будет означать, что библиотека js доступна из cljs-js-compiled.
Во всяком случае, я оставил "предупреждение" в библиотеке js mock, чтобы проверить правильность загрузки файла.
Я надеюсь, что это сработает для вас
Juan