Тема: private vs public
Показать сообщение отдельно
  #25 (permalink)  
Старый 11.07.2012, 19:58
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Ещё не забывайте, что в Джаваскрипте есть собственная поддержка свойств доступа. Поэтому вместо этого:
function Car(speed) {
  this._speed=speed;
}
Car.prototype.getSpeed=function () {
  alert("Скорость: "+this._speed);
  return this._speed;
};
Car.prototype.setSpeed=function (v) {
  this._speed=v;
  alert("Скорость установлена на "+v);
};
var car = new Car(100);
car.setSpeed(car.getSpeed()+1)

гораздо удобнее работать с этой реализацией Car:
function Car(speed) {
  this._speed=speed;
}
Car.prototype={
  get speed() {
    alert("Скорость: "+this._speed);
    return this._speed;
  },
  set speed(v) {
    this._speed=v;
    alert("Скорость установлена на "+v);
  }
};
var car = new Car(100);
car.speed++;

Последний раз редактировалось oneguy, 11.07.2012 в 20:00.
Ответить с цитированием