Показать сообщение отдельно
  #1 (permalink)  
Старый 11.07.2012, 15:48
Аспирант
Отправить личное сообщение для almac Посмотреть профиль Найти все сообщения от almac
 
Регистрация: 29.06.2012
Сообщений: 31

Интересный вопросик, опять же связано с "основами" языка
Кто-нибудь может объяснить такую хитрую штуку.. Есть код:
function Car(speed) {
  Car.prototype = {
    getSpeed: function() {
      return speed;
    }
  }
  Car.prototype.constructor = Car;
}
var car = new Car(100);

Почему car не видит метода getSpeed?
car.getSpeed(); //ошибка
car.constructor.prototype.getSpeed(); //вернет speed=100


В то же время можно делать так (не переопределяя прототип):

function Car(speed) {
  Car.prototype.getSpeed = function() {
    return speed;
  }
}
var car = new Car(100);
car.getSpeed(); //100

Последний раз редактировалось almac, 11.07.2012 в 16:06.
Ответить с цитированием