2016-01-08 17 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,認爲回調,而不是任何類的函數 –

回答

相關問題