Показать сообщение отдельно
  #1 (permalink)  
Старый 13.02.2012, 01:12
Аспирант
Отправить личное сообщение для jsuse Посмотреть профиль Найти все сообщения от jsuse
 
Регистрация: 10.04.2010
Сообщений: 92

Почему this видно из замыкания?
Помогите разобраться с this. Подскажите, где неправильно думаю.
Вот есть пример в учебнике, тема "Прототипное наследование".

var animal = {
  eat: function() {
    alert( "Я наелся" );
    this.full = true;
  }
};
 
var rabbit = {
  jump: function() { /* ... */ }
}
 
rabbit.__proto__ = animal 
 
rabbit.eat()            // выводит "Я наелся"
alert(rabbit.full)      // выводит true


Интересует, как он может видеть true, когда обращаешься rabbit.full? Почему к свойству full так можно обратиться, если оно находится в функции и по идее оно в замыкании. Его не должно быть видно. Я понимаю, если бы было так:
var animal = {
  full:  false,                  // вот так оно находится в локальной области объекта
  eat: function() {
    alert( "Я наелся" );
    this.full = true;          // и после срабатывания ф-ции оно бы становилось true там, выше в объекте;
  }
};

А почему к нему есть доступ в первом случае, не понимаю.
Ответить с цитированием