Пример:
function Base( name ){
this.name = name;
}
function Derived( name, type ) {
Base.call( this, name );
this.type = type;
}
Derived.prototype = Object.create( Base.prototype );
var b = new Base( 'Peter' );
var d = new Derived( 'John', 2 );
Итак, класс Base
определяет один элемент экземпляра - 'name'
.Класс Derived
определяет один дополнительный член экземпляра - 'type'
.
Ключевая часть вызывает конструктор Base
внутри вызова конструктора Derived
, поэтому вы внутренне«настроить» экземпляр, как если бы он был Base
экземпляром (вы передаете необходимые аргументы), а затем вы дополняете экземпляр дополнительным материалом, определенным только для Derived
экземпляров.
Итак,в моем примере выше, b
имеет одно собственное свойство - 'name'
, тогда как d
имеет два собственных свойства - 'name'
и 'type'
.