我有点像飞镖,并试图通过在其中编写一些库函数来弄湿我的脚.
虽然我从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库,为了减少错误的数量,我认为我的库可能会受益于使用Dart的静态类型机制.首先,因为我的lib没有与HTML或其他JavaScript库进行任何互操作,只有纯javascript对象操作的东西.但是我没有在网上找到任何关于如何使用dart构建JS库的信息.所以我自己尝试这样做,创建了初始的dart文件:
library Repo;
class Type {
final String name;
final TypeCategory category;
Type(String name, TypeCategory category) : name = name, category = category {
category.types[name] = this;
}
}
class TypeCategory {
final String name;
final Map<String, Type> types = new Map();
TypeCategory(this.name);
}
class Branch {
}
class Descriptor {
}
class TableDescriptor extends Descriptor {
TableDescriptor.ctor() {
}
}
class Repo {
Descriptor descriptor(String name) {
}
Branch branch(String name) {
}
void Merge() {
}
} …Run Code Online (Sandbox Code Playgroud)