var CashMatic = external; //CashMatic - рекомендуемое имя для основного объекта //объектной модели NDemia CashMatic var Request = null; //ссылка на асинхронный запрос // (объект CashMaticRequest) function Пример() { Request = CashMatic.Cash.GetDeviceProtocol( new ResultHandler("пример обработчика") ); /* метод GetDeviceProtocol при вызове с параметром: 1. интерпретирует параметр как ссылку на обработчик результата запроса; 2. создаёт асинхронный запрос; 3. возвращает ссылку на асинхронный запрос, не дожидаясь результата запроса. В качестве обработчика результата мы создаём объект ResultHandler (см. ниже). Полученная ссылка на запрос сохраняется в переменной Request. */ } function ResultHandler(title) /* Эта функция инициализирует объект-обработчик запроса, реализующий интерфейс CashMaticResultHandler. Параметр title показывает, как прикладной скрипт может добавить к создаваемому объекту собственные свойства, не предусмотренные спецификацией интерфейса CashMaticResultHandler. */ { this.HandleResult = function(Result) //Функция обработки результата запроса, реализует // соответствующий метод интерфейса CashMaticResultHandler. //Эта функция будет автоматически вызвана при готовности // результата нашего запроса (в том числе при // отрицательном результате, т.е. при ошибке или // отмене запроса). //Результат запроса передаётся в параметре Result как // объект CashMaticResult. { if(Result.Code == 0) { //нулевой код результата означает отсутствие ошибок: this.ShowResult(Result.Data); //вызываем демонстрационный метод нашего обработчика // для отображения полученного результата. //Result.Data содержит строку "CCNET" или "ICT004", // в зависимости от настроенных параметров // подключения купюроприёмника. } else this.ShowResult( "Ошибка опроса протокола управления купюроприёмника" ); }; this.ShowResult = function(text) //Дополнительная функция нашего объекта, // не предусмотренная спецификацией CashMaticResultHandler. { alert(this.title + ": " + text); }; this.title = title; //Дополнительное свойство нашего объекта, // не предусмотренное спецификацией CashMaticResultHandler. }