使用GWT JSNI,JavaScriptObject和Element作为JSNI方法的参数类型有什么区别?
请考虑以下方法:
native void method(JavaScriptObject inputFile) /*-{
}-*/;
和这个:
native void method(Element inputFile) /*-{
}-*/;
如果我使用JavaScriptObject或Element,它对内部JSNI函数有什么不同吗?
AnElement
是a JavaScriptObject
,但是反过来是不正确的,不是所有的Java脚本对象都是dom元素。
从Java的角度来看,这很重要-确保您不要传递没有意义的东西(例如Window实例或某些json数据),而只传递真正是元素的东西。
从JSNI方法内部的JavaScript角度来看,这没有什么区别,因为JS无法理解这些术语中的类型,并且希望传入的任何对象都具有正确的方法和字段。
所有其他条件都相同,请更清楚-合理时使用Element,或者至少添加javadocs或命名要明确的参数。Java,GWT和Javascript都不会关心是否指定JSO而不是Element,但是如果您不小心传入了非Element并且该方法需要一个Element,则可能会出错。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句