Сообщение от systemiv
|
А кто сможет подкинуть задачу на прототипы и наследование?
Нужно попрактиковаться.
Спасибо!
|
вот код, который заготовлен.
есть три
класса(пардон, функции) и соотв. им экземпляры.
у каждого объекта свой конструктор, свои свойства. Свой прототип не у всех.
// Parent "class"
function Parent( a, b, c){
this.a=a;
this.b=b;
this.c=c;
};
function ParentPrototype (){
this._a = function(){ };
this. _b = function(){ };
this._c = function(){ }
};
Parent.prototype = new ParentPrototype();
// Child "class"
function Child( d, e, f ) { this.d = d; this.e = e; this.f = f; };
// More "class"
function More( g ) {
this.g = g;
this.h = function(){ };
};
function MorePrototype(){
_g = function(){ };
};
More.prototype = new MorePrototype();
создаем экземпляры.
var parent = new Parent( 'a','b','c' );
var child = new Child( 'd','e','f' );
var more = new More( 'g' );
Задача : написать функцию
mix,
которая будет возвращать
новый класс(объект), конструктор которого будет принимать все аргументы из конструкторов всех трёх переданных в неё аргументов. (ЩИТО?)
var Mixed = mix( parent, child, more );
var obj = new Mixed(
'a','b','c', // Parent
'd','e','f', // Child
'g' // More
);
а так же организовывать такой доступ к свойствам\методам переданных в неё объектов (наследие)
// Parent
obj._a(), obj._b(), obj._c();
// Mix
obj.g; obj.h();
typeof obj._g === 'undefined' // => true
из последнего (третьего) объекта методы\свойства прототипа наследоваться не будут.
...
надеюсь, вам понравится
старался