Показать сообщение отдельно
  #1 (permalink)  
Старый 11.02.2011, 12:32
Новичок на форуме
Отправить личное сообщение для stnw Посмотреть профиль Найти все сообщения от stnw
 
Регистрация: 13.11.2010
Сообщений: 7

область видимости переменных в prototype (тупой вопрос))
Добрый день!

Пытаюсь разобраться по прочтении статьи о наследовании (http://javascript.ru/tutorial/object/inheritance). Как я понял, методы и свойства объявленные в прототипе класса становятся общие для всех объектов. И в статье даже приводится пример:

В него я добавил лишь одно дополнительное свойство something. Но почему-то в другом объекте оно осталось прежним. Получается, что свойство something создалось для каждого объекта.

function Hamster() {  }
Hamster.prototype = {
    food: [],
    something: 'no',
    found: function(something) {
        this.food.push(something)
		this.something = something;
    }
}
speedy = new Hamster()
lazy = new Hamster()
 
speedy.found("apple")
speedy.found("orange")
 
alert(speedy.food.length) // 2
alert(lazy.food.length) // 2 (!??)

alert(speedy.something) // orange
alert(lazy.something) // no //почему no???


Просьба простить за глупый вопрос и наставить на путь истинный.
Заранее благодарен!
Ответить с цитированием