Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.05.2010, 23:48
Аспирант
Отправить личное сообщение для YISHIMITSY Посмотреть профиль Найти все сообщения от YISHIMITSY
 
Регистрация: 04.11.2008
Сообщений: 61

Вопрос по наследованию
function main() {
  if(this.main) return new main();
  this.prop = 1;
}
main.prototype = {
  method: function() { alert(this.prop) },
  property: this.prop
}
main().method(); // нормально
alert(main().property); // undefined


Собственно вопрос, почему this.prop виден через метод, но не виден через свойство? и можно каким-то образом всё-же присвоить его свойству? P.S статью про наследование читал, но многое не дошло..
Ответить с цитированием
  #2 (permalink)  
Старый 10.05.2010, 23:51
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

В момент создания объекта prototype = {…}, this указывает на window (global object, если точнее).

Вообще не совсем понял, как вы хотели, чтобы еще не существующее значение заранее записалось в prototype?

Последний раз редактировалось Octane, 10.05.2010 в 23:53.
Ответить с цитированием
  #3 (permalink)  
Старый 11.05.2010, 01:10
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

new потерялся.
Ответить с цитированием
  #4 (permalink)  
Старый 12.05.2010, 11:26
Аспирант
Отправить личное сообщение для YISHIMITSY Посмотреть профиль Найти все сообщения от YISHIMITSY
 
Регистрация: 04.11.2008
Сообщений: 61

Сообщение от Riim Посмотреть сообщение
new потерялся.
а где он должен?
Ответить с цитированием
  #5 (permalink)  
Старый 12.05.2010, 11:43
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Перед main() .
Ответить с цитированием
  #6 (permalink)  
Старый 12.05.2010, 12:21
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Riim, там автоматически в конструкторе вызывается if(this.main) return new main();
Ответить с цитированием
  #7 (permalink)  
Старый 12.05.2010, 13:30
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

В 7-ой строке this ссылается на конструктор, а не на экземпляр. Свойства prop у конструктора нет.
Ответить с цитированием
  #8 (permalink)  
Старый 12.05.2010, 13:34
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Riim
В 7-ой строке this ссылается на конструктор, а не на экземпляр.
На window.
Ответить с цитированием
  #9 (permalink)  
Старый 12.05.2010, 13:42
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от Kolyaj
На window.
да, верно, туплю.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос о циклических ссылках (JavaScript -> Dom -> JavaScipt) BlueIce Events/DOM/Window 10 17.02.2010 21:58
Вопрос про ООП, цепочки прототипов. Shaci Общие вопросы Javascript 5 27.01.2010 14:50
Вопрос по утечке памяти micscr Общие вопросы Javascript 8 11.09.2009 15:35
мааленький вопрос по Regexp:) mirniy Общие вопросы Javascript 1 22.01.2009 20:47
вопрос по long poll megaswin AJAX и COMET 2 27.05.2008 09:20