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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Абстрагирование кода в JavaScript 
:(
    Опции темы
shurup_312
Дата 27.6.2014, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



В двух или трех файлах используется по сути один и тот же кусок кода, решил вынести в отдельный файл и там сделать объект с методом, в котором этот кусок кода,
Пусть будет 

Код

var model = {
  method : function(){
    ...
  }
}


В этом коде велась работа со свойствами объекта, так что логично этот объект передать сюда., поэтому будет 

Код

var model = {
  method : function(object){
    ...
  }
}

...
model.method(object);


Так как в JS передача объектов происходит по ссылке, то у меня по сути никакого return в функции не надо делать и при вызове ничего не надо присваивать. Я-то это понимаю, но все равно привык делать return и присваивание. Да и работаю  в команде, новички могут не знать этой тонкости и подумать, что присваивание надо сделать и return. В этом ничего плохого не будет конечн, но все же, может есть какой-то способ написать код более логично и привычно? Или это нормальная практика в JS?
PM MAIL   Вверх
Aliance
Дата 27.6.2014, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



Цитата(shurup_312 @  27.6.2014,  13:23 Найти цитируемый пост)
Да и работаю  в команде, новички могут не знать этой тонкости и подумать, что присваивание надо сделать и return.

напишите для таких людей комментарий, чтобы не возникало неоднозначной трактовки.

либо передавайте объект в конструктор вашего объекта, и ведите работу не с ним самим, а с полем вашего объекта, примерно так:
Код

var globalObject = new Model(myLocalObject);
globalObject.method();
...
function Model (localObject) {
    // ссылка на локальный объект
    this.localObject = localObject;
}

Model.prototype.method = function() {
    this.localObject.someLocalMethod();
}

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


 




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


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

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