Показать сообщение отдельно
  #1 (permalink)  
Старый 28.10.2011, 07:05
Интересующийся
Отправить личное сообщение для jazzz13 Посмотреть профиль Найти все сообщения от jazzz13
 
Регистрация: 31.05.2011
Сообщений: 25

ООП, this, приватные методы, я не понимаю. Помогите!
Добрый день, уважаемые знатоки.
Я изучаю ООП в 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);
	......
}
Вроде не получается. Почему?

Последний раз редактировалось jazzz13, 28.10.2011 в 07:22.
Ответить с цитированием