2016-01-08 16 views
1

使用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实例,就好像它是一个函数?

谢谢

+0

“一个Java对象可以像JavaScript中的函数一样调用” - 我可能是错的,但猜测这个语句是关于匿名类/ lambdas,认为回调,而不是任何类的函数 –

回答

相关问题