我有点像飞镖,并试图通过在其中编写一些库函数来弄湿我的脚.
虽然我从dart调用javascript函数没有问题,但我希望能够从javascript调用dart函数,但到目前为止,我没有太多喜欢.
例如,我希望能够从dart中公开一些基本功能,例如:
main() {
String foo() {
return "bar!";
}
js.scoped(() {
js.context.foo = foo;
});
}
Run Code Online (Sandbox Code Playgroud)
然后能够从javascript中调用它们,如下所示:
<script>
window.onload = function() {
alert("foo() = " + foo());
}
</script>
Run Code Online (Sandbox Code Playgroud)
这样的事情甚至可能吗?
我想写一个javascript库(框架),但需要OOP和mixins.
是打算使用打字稿,但它不支持mixins(手册说它确实如此,但编译器/规范没有任何与mixin相关的东西).
在typescript中,以下代码:
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
Run Code Online (Sandbox Code Playgroud)
编译为:
var Greeter = (function () {
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return "Hello, " + this.greeting;
};
return Greeter;
})();
Run Code Online (Sandbox Code Playgroud)
然后客户可以简单地致电:
var greeter = new Greeter("world");
Run Code Online (Sandbox Code Playgroud)
飞镖可以做类似的事吗?有人能说明怎么样?
主要目标是生成的javascript代码是可读的,最好是所有的dart extras驻留在不同的脚本中.