Зачем писать в паттерне «декоратор» название конструктора?
function Class() {}
console.log(typeof Class.prototype); 
//  "object"
// как видим, прототип объекта это тоже объект
console.log(typeof Class.prototype.constructor); 
// "function"
// и у него уже есть метод constructor
console.log(Class.prototype.constructor === Class);
// true
// и он как раз и ссылается на саму функцию Class
// но когда расширяют прототип таким образом
Class.prototype = {
  method: function() {},
  method2: function() {}
}
// то переопределяют свойство prototype и связь с конструктором теряется
// и поэтому явно определяют конструктор
Class.prototype = {
  constructor: Class,
  method: function() {},
  method2: function() {}
}
// для того, что бы этого не делать (не указывать явно ссылку на конструктор), 
// правильнее было бы сделать так

function MyAwesomeClass() {}
MyAwesomeClass.prototype.method = function() {}
MyAwesomeClass.prototype.method2 = function() {}
это не название, вы явно задаете конструктор но у прототипа, что интересно. Зачем - а вот тут не скажу. Сейчас модно вообще пользоваться Object.create.