Добрый день, уважаемые знатоки.
Я изучаю ООП в javascript и сегодня мое сознание терзает один вопрос
.
Как я читал в учебниках и интернете при вызове функции - конструктора (new Class(par)) инициализируется новый объект и на него ставится указатель this.
Все верно, и с учетом замыканий, я предполагал, что
любое упоминание слова this это указатель на создаваемый объект, но в приватных методах это не получается. Вот код:
function Class(){
var curThis = this;
this.publickMethod = function(){
console.log(this);
privateMethod();
};
function privateMethod(){
console.log(curThis);
console.log(this);
};
};
var a = new Class();
a.publickMethod();
Я ожидал увидеть в консоли три объекта одного класса, но
на практике последний объект window.
Пожалуйста разъясните мне, выходит не любое this в конструкторе это новый объект?
Заранее спасибо!
UPD и еще вопрос на закуску:
Можно ли при наследовании определять свойства родительского класса таким образом:
function A(name){
this.getName = function(){console.log(name)};
};
function B(name){
this = new A(name);
......
}
Вроде не получается. Почему?