Показать сообщение отдельно
  #1 (permalink)  
Старый 31.01.2014, 01:15
Аспирант
Отправить личное сообщение для Ervin Посмотреть профиль Найти все сообщения от Ervin
 
Регистрация: 19.03.2013
Сообщений: 84

Prototype inheritance
Всем привет,

Собственно получил такой вопрос (см. ниже), и хотел бы уточнить правильно ли я понял задачу, если нет, то какое решение было-бы правильным.

Вопрос:

Explain how javascript prototypical inheritance differs from classical inheritance. Implement a subclass using javascript using the following API and test script

ParentClass::firstMethod(args...)
ParentClass::secondMethod(args...)
ChildClass::secondMethod(args...) // calls ParentClass::secondMethod(args...)

parentClass = new ParentClass();
childClass  = new ChildClass();
parentClass.firstMethod(1,2);  // expect console.log('firstMethod 1');
parentClass.secondMethod(1,2); // expect console.log('secondMethod 2');
childClass.secondMethod(3,4);  // expect console.log('secondMethod 4'); console.log('thirdMethod 3');




Мой ответ:

var ParentClass = function(args) {
	
};

ParentClass.prototype = {
	constructor: ParentClass,
	firstMethod: function(arg1, arg2) {
		console.log("firstMethod " + arg1);
	},
	secondMethod: function(arg1, arg2) {
		console.log("secondMethod " + arg2);
	}
};

var ChildClass = function(args) {
	
};

ChildClass.prototype = {
	constructor: ChildClass,
	secondMethod: function(arg1, arg2) {
		ParentClass.prototype.secondMethod(arg1, arg2);
		
		console.log("thirdMethod " + arg1);
	}
};

parentClass = new ParentClass();
childClass  = new ChildClass();
parentClass.firstMethod(1,2);  // expect console.log('firstMethod 1');
parentClass.secondMethod(1,2); // expect console.log('secondMethod 2');
childClass.secondMethod(3,4);  // expect console.log('secondMethod 4'); console.log('thirdMethod 3');


Благодарю Знатоков
Ответить с цитированием