Сольные

Cольные функции - функции, созданные непосредственно программистом (не cистемой) в рамках данного проекта (часто используемые функции, применяемые в нескольких проектах, разработчику рекомендуется хранить в отдельных библиотеках).

Сольные функции могут быть созданы и удалены программистом. Они могут быть переименованы. Список их входных параметров может быть изменён.

Чтобы предвосхитить закономерный вопрос, скажем, что JS-функция eval нигде в sFF не используется. Все функции sFF - это анонимные функции JS-класса Function. В $_GAOS существует отдельный метод $_GR().eval(code), который также генерирует анонимные функции, порожденные Function.

Для создания сольной функции необходимо перейти в часть Front-функции раздела Code, затем нажать и ввести имя функции. Имя должно быть уникальным и непустым. При выполнении этих требований, функция без аргументов будет создана. Чтобы добавить созданной функции список входных параметров, нужно вызвать правой кнопкой мыши всплывающее меню и выбрать пункт Change parameter list. В диалоговом окне нужно ввести список параметров, как если бы вы вводили его в обычном коде внутри уже поставленных круглых скобок.

Давайте по этой методике создадим функцию. Дадим ей имя outFunc. Дадим ей список параметров из одного аргумента inStr. А в тело поместим

alert(inStr);

Затем, как обычно, сложим в модуль кнопку и в её обработчике Signal.click запишем

outFunc("Any string");

, сохраним, перезагрузим, нажмём...

Ничего не произошло. Почему? Потому что в sFF это работает по-другому. Можно, конечно, было бы использовать также реализованный нами механизм динамического создания HTML-элементов script в странице, но, следуя концепции sFF, программист должен иметь доступ ко всем его подобъектам, находящимся, по возможности, внутри $_GAOS, иметь возможность управлять ими (создавать, изменять и удалять) в процессе выполнения кода приложения, иметь к ним единообразную методику доступа.

Поэтому, чтобы вызвать пользовательскую функцию outFunc(inStr), необходимо в обработчике нажатия кнопки написать следующее

$_GF("outFunc")("Any string");

Вот теперь всё работает.

В sFF существует три собственных метода для работы с пользовательскими функциями:

  • $_GF().add(fooNam, fooBod, fooPar) - создание новой функции. Если функция с таким именем уже существует, в консоль будет выведено предупреждение об этом и о невозможности создать функцию с таким именем вновь.

  • $_GF().rename(oldNam, newNam) - переименование существующей функции.

  • $_GF().rearm(fooNam, fooBod, fooPar) - переобъявление функции с новым кодом и параметрами.

Примеры

Кроме этого $_GF() как карта (как и большинство объектов $_GAOS), предоставляет ещё два метода из собственных, которыми можно пользоваться при работе с функциями:

  • $_GF().has(fooNam) - проверка существования функции.

  • $_GF().delete(fooNam) - удаление функции.

Раз уж упомянули о динамических скриптах, сообщим, что существует два метода $_GAOS для работы с ними:

  • $_GEcc().scriptCreate(scrName, scrCode) - динамическое создание скрипта.

  • $_GEcc().scriptLink(scrName, scrAddr) - динамическая привязка файла скрипта по URL.

Примечание: имя скрипта scrName введено для идентификации динамических скриптов.

Last updated