В коде присутствует
let a= new b();
Из этого равенства следует, что 
a
 - это экземпляр класса-функции 
b
 (
b
 является классом только семантически, а не синтаксически), т. к. создана с помощью 
new
 и функции-конструктора 
b
. С другой стороны 
a.__proto__=b.prototype
, т. е. 
a
 прототипно наследует 
b.prototype
. Т. е. получаем, что 
a
 наследует 
b
 и 
a
 наследует 
b.prototype
 (прототипно). Это так? 
a
 наследует 
b
? 
P.S. У меня почему-то не редактируется (поэтому в комментарии черкните как избежать переноса строк).