Полный цикл в digital

Инкапсуляция

Инкапсуляция является одним из ключевых понятий объектно-ориентированного программирования и представляет сокрытие состояния объекта от прямого доступа извне. По умолчанию все свойства объектов являются публичными, общедоступными, и мы к ним можем обратиться из любого места программы.

function User(pName, pAge) {
this.name = pName;
this.age = pAge;
this.displayInfo = function(){
document.write("Имя: " + this.name + "; возраст: " + this.age);
};
};
var tom = new User("Том", 26);
tom.name=34;
console.log(tom.name);

Мы можем их скрыть от доступа извне, сделав свойства локальными переменными:

function User (name, age) {
this.name = name;
var _age = age;
this.displayInfo = function(){
document.write("Имя: " + this.name + "; возраст: " + _age + "
"); }; this.getAge = function() { return _age; } this.setAge = function(age) { if(typeof age === "number" && age >0 && age<110){ _age = age; } else { console.log("Недопустимое значение"); } } } var tom = new User("Том", 26); // undefined _age - локальная переменная console.log(tom._age); // 26 console.log(tom.getAge()); tom.setAge(32); // 32 console.log(tom.getAge()); // недопустимое значение tom.setAge("54");

В конструкторе User объявляется локальная переменная _age вместо свойства age. Как правило, названия локальных переменных в конструкторах начинаются со знака подчеркивания.

Для того, чтобы работать с возрастом пользователя извне, определяются два метода. Метод getAge() предназначен для получения значения переменной _age. Этот метод еще называется геттер (getter). Второй метод setAge, который еще называется сеттер (setter), предназначен для установки значения переменной _age.

Плюсом такого подхода является то, что мы имеем больший контроль над доступом к значению _age. Например, мы можем проверить какие-то сопутствующие условия, как в данном случае проверяются тип значение (он должен представлять число), само значение (возраст не может быть меньше 0).

Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг