Я делаю библиотеку в ClojureScript, которая откроет публичный JavaScript API. Так как он должен имитировать API существующей библиотеки JavaScript, я хотел бы представить такую же беглом API:Свободный интерфейс в ClojureScript
myLib.prepareToDo()
.something()
.and('also')
.somethingElse()
.run(function(err, result) {
console.log("yay!");
});
В JavaScript можно создать свободно API, как этот site point):
var MyClass = function(a) {
this.a = a;
}
MyClass.prototype.foo = function(b) {
// Do some complex work
this.a += Math.cos(b);
return this;
}
затем я могу назвать это как:
var obj = new MyClass(5);
obj.foo(1).foo(2).foo(3);
Теперь, насколько я знаю, нет никакого понятия this
в ClojureScript, хотя, видимо, это ПОСС Доступ к ней this-as
.
Я не понимаю, как использовать его, хотя, следовательно, мой вопрос.
Как создать свободный интерфейс в ClojureScript?