JSNI: Разлика между параметъра на функцията JavaScriptObject и Element JSNI?

Използване на GWT JSNI каква е разликата между JavaScriptObject и Element като тип параметър за JSNI метод?

Обмислете следния метод:

native void method(JavaScriptObject inputFile) /*-{

}-*/;

и това също:

native void method(Element inputFile) /*-{

}-*/;

Прави ли нещо различно за вътрешната JSNI функция, ако използвам JavaScriptObject или Element?


person confile    schedule 10.01.2014    source източник


Отговори (1)


Element е JavaScriptObject, но обратното не е вярно, не всички обекти на java script са dom елементи.

От гледна точка на Java това е важно - гарантира, че няма да подадете нещо, което няма смисъл, като екземпляр на Window или някои json данни, а само неща, които наистина са елементи.

От гледна точка на JavaScript вътре в метода JSNI, това няма значение, тъй като JS не разбира типовете в тези термини и очаква, че всеки обект, който се предава, има правилните методи и полета в него.

При равни други условия, бъдете по-ясни - използвайте Element, когато има смисъл, или поне добавете javadocs или именувайте параметъра, за да бъде ясно. Нито Java, нито GWT, нито Javascript ще се интересуват, ако посочите JSO вместо Element, но ако случайно подадете не-Element и методът изисква елемент, може да получите грешка.

person Colin Alworth    schedule 10.01.2014