Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Псевдокласс javascript (https://javascript.ru/forum/css-html/50552-psevdoklass-javascript.html)

serrrgggeee 01.10.2014 12:00

Псевдокласс javascript
 
Здравствуйте! изучаю наследование в javascript, вот есть код здесь создается нечто похожее на более продвинутые языки как я понял. Вот код:
// Программный шаблон псевдокласса должен напоминать объектно-ореентированный класс
// но выглядит он иначе. Некоторые уродства можно скрыть с помощью метода method
// и определения метода inherits.

Function.method('inherits', function (Parent) {
	this.prototype = new Parent(); return this;
});

var Cat = function (name) {
	this.name = name;
	this.saying = 'meow';
}.
	inherits(Mammal).
	method('purr', function (n) {
		var i, s = '';
		for (i = 0; i < n; i += 1) {
			if (s) {
				s +=
			}
			s += 'r';
		}
		return s;
	}).
	method('get_name', function () {
		return this.says( ) + ' ' + this.name + ' ' + this.says( );
	})

начну с начала вот строчка
this.prototype = new Parent(); return this;

как я понял здесь конкретный объект получает в свойство prototype новый объект к которому может обращаться, а вот вызов
inherits(Mammal).

danik.js 01.10.2014 12:45

Цитата:

Сообщение от serrrgggeee
Некоторые уродства можно скрыть с помощью метода method
// и определения метода inherits

Как раз то, что я вижу - и есть уродство )

serrrgggeee 01.10.2014 12:53

а что происходит в этой строке
this.prototype = new Parent(); return this;

danik.js 01.10.2014 14:35

Изучи сначала наследование в нормальном виде, без извращенного кода. И тогда все поймешь.

serrrgggeee 01.10.2014 15:00

я уже изучил, а то не могу понять, поэтому и задаю вопрос


Часовой пояс GMT +3, время: 15:01.