Вопрос по наследованию
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 статью про наследование читал, но многое не дошло.. |
В момент создания объекта prototype = {…}, this указывает на window (global object, если точнее).
Вообще не совсем понял, как вы хотели, чтобы еще не существующее значение заранее записалось в prototype? |
new потерялся.
|
Цитата:
|
Перед main() .
|
Riim, там автоматически в конструкторе вызывается if(this.main) return new main();
|
В 7-ой строке this ссылается на конструктор, а не на экземпляр. Свойства prop у конструктора нет.
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 04:21. |