Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объявить функцию где часть имени переменная 
:(
    Опции темы
mstdmstd
Дата 8.12.2015, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



Всем привет,
Можно ли в js-файле, при объявлении функций, часть имени задать в качестве переменной? Что-то вроде file.js:
Код

var this_m_nsnPluginPrefix;

function nsnpas_productsAjaxSearchBox(Params, use_in_search_array, autocomplete_save_options_as_array) {  // constructor of backend artist's editor - set all params from server
    selfproductsAjaxSearchBox = this;
    this_m_nsnPluginPrefix = Params.nsnPluginPrefix;
    this_plugin_url = Params.plugin_url;
    ...
}

nsnpas_productsAjaxSearchBox.prototype.openOptions = function () {
    $( "#span_"+this_m_nsnPluginPrefix+"openOptions").css("display","none")
    $( "#span_"+this_m_nsnPluginPrefix+"hideOptions").css("display","inline")
    $( "#div_"+this_m_nsnPluginPrefix+"ajaxSearchOptions").css("display","inline")


Где "nsnpas_" и должна быть заданная переменная, которая и передается через в функцию nsnpas_productsAjaxSearchBox как параметр Params.nsnPluginPrefix ?

Идея в том, что это php/wordpress плагин с подключенным js-файлом с js функциями.
Хочется избежать возможных ошибок js-функций с одним и тем же именем от разных девелоперов и используя префикс "nsnpas_" в именах функций и инпутов ввода данных.
И иметь возможность задать этот "nsnpas_" в одном месте - чтобы можно было поменять...
PM MAIL   Вверх
ksnk
Дата 8.12.2015, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



В JS есть разные способы.
Например - замыкания. Снаружи тела функции, все описанные внутри функции не видны. Если внутри тела функции использовать свежеописанные для устанвки обработчиков событий, таймеров и так далее, то после выполнения - функции останутся, а имен - не будет.
Что-то вроде
Код

(function(){
   function a(){
     console.log('call a function');
   }
   setinterval(a,1000);
})();

function a(){
  console.log('call a(2) function');
}

Финт ушами, когда внутри скобок () описывается функция - выдает анонимную функцию, и когда после этого идет еще одна пара скобок - получается вызов этой самой функции.

Если присмотреться к исходникам плагинов к jQuery - такой прием встречается часто..

Есть и более "традифионный" метод - все функции можно просто присваивать какому-нибудь объекту. 
Код

var a={};
a.a=function(e){
}
...
a.a(e);



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0952 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.