使用JsInterop,我包裹下面的JavaScript代码:GWT JsInterop - 调用对象就像是一个功能
var voronoi = d3.geom.voronoi()
.clipExtent([[0, 0], [width, height]]);
如下:
private Voronoi voronoi;
...
voronoi = d3.geom().voronoi()
.clipExtent(new Double[][] {{0.D, 0.D}, {width, height}});
这多少似乎是工作。
后来,对事物的JavaScript的一面,他们提出以下电话:
path = path
.data(voronoi(vertices), polygon);
我有一个很难搞清楚如何调用我的维诺例如,如果它是一个函数这样。
在此文件:https://docs.google.com/document/d/10fmlEYIHcyead_4R1S5wKGs1t2I7Fnp_PaNaa7XTEk0/edit#,我看到了下面一行:
@JsFunction JsInterop的另一个强大的功能就是代表Java和JavaScript之间的JavaScript函数合同的能力。这意味着一个JavaScript函数可以从Java或很容易调用的Java对象可以被称为像在JavaScript函数:
现在我的Voronoi对象如下:
@JsType(isNative = true)
public interface Voronoi extends Geometry {
<D> Voronoi clipExtent(D[][] bounds);
}
任何想法我需要做什么来调用我的Voronoi实例,就好像它是一个函数?
谢谢
“一个Java对象可以像JavaScript中的函数一样调用” - 我可能是错的,但猜测这个语句是关于匿名类/ lambdas,认为回调,而不是任何类的函数 –