Ядро JavaScript 1.5. Руководство по использованию

Конвертация из Java в JavaScript


Значения, передаваемые из Java в JavaScript, конвертируются так:

Java-значения byte, char, short, int, long, float и double конвертируются в числа JavaScript.

Булево значение Java конвертируется в булево значение JavaScript.

Объект класса netscape.javascript.JSObject конвертируется в оригинальный JavaScript-объект.

Массивы Java конвертируются в объект псевдо-Array JavaScript; поведение этого объекта похоже на объект Array  из JavaScript: Вы можете получить к нему доступ через синтаксис arrayName[index] (где index это целое число) и определить его размер через свойство arrayName.length.

Java-объект любого иного класса конвертируется в оболочку JavaScript, которая может использоваться для доступа к методам и полям Java-объекта:

 

    Конвертация этой оболочки в строку вызывает метод toString объекта-оригинала.

    Конвертация в число вызывает метод doubleValue, если это возможно, иначе - терпит неудачу.

    Конвертация в boolean в JavaScript 1.3 и более поздних версиях возвращает false, если объект - null, и true - в ином случае.

    Конвертация в boolean в JavaScript 1.2 и более ранних версиях вызывает метод booleanValue, если это возможно, иначе - терпит неудачу.

Заметьте, что экземпляры объектов java.lang.Double и java.lang.Integer конвертируются в объекты JavaScript, а не в числа JavaScript. Аналогично и экземпляры java.lang.String также конвертируются в объекты JavaScript, а не в строки JavaScript.

Java String-объекты также соответствуют JavaScript-оболочкам. Если Вы вызываете метод JavaScript, который требует строки JavaScript, и передаёте его этой оболочке, Вы получите ошибку. Вместо этого конвертируйте оболочку в строку JavaScript путём присоединения к ней пустой строки, как показано здесь:

var JavaString = JavaObj.methodThatReturnsAString();

var JavaScriptString = JavaString + "";

 


            

Copyright © 2000 Все Права Зарезервированы.

Дата последнего обновления 28 сентября 2000 года.



Содержание раздела