Пытаюсь разобраться в таком демонстрационном примере
function SuperType(){
this.colors = ["red", "blue", "green"];
}
function SubType(){
SuperType.call(this);
}
var instance1 = new SubType();
По-ненашему такой подход называется
constructor stealing. Для чего нужно, более-менее понятно - чтобы у каждого экземпляра SubType было свое собственное свойство colors, сделанное в соответствии с "калькой" конструктора SuperType.
Но никак не могу понять, что происходит за кулисами внутри определения SubType (т. е. вот эта строка SuperType.call(this)
.
К конструктору SuperType применяется метод call. Но я нигде не вижу слова new, значит такой вызов по идее должен возвращать undefined. Мало того, есть еще и параметр this. Чему тут равен this? Глобальному
объекту?
Совершенно запутался
, помогите разобраться...