Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Абстрагирование кода в JavaScript


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

Код

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


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

Код

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

...
model.method(object);


Так как в JS передача объектов происходит по ссылке, то у меня по сути никакого return в функции не надо делать и при вызове ничего не надо присваивать. Я-то это понимаю, но все равно привык делать return и присваивание. Да и работаю  в команде, новички могут не знать этой тонкости и подумать, что присваивание надо сделать и return. В этом ничего плохого не будет конечн, но все же, может есть какой-то способ написать код более логично и привычно? Или это нормальная практика в JS?

Автор: Aliance 27.6.2014, 12:45
Цитата(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();
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)