В prototype по умолчанию всегда находится свойство constructor, указывающее на функцию-конструктор.
function Rabbit(){}
console.log( Rabbit.prototype.constructor ); //Rabbit
Автор кода выше переопределяет
prototype целиком:
Square.prototype = new Rectangle();
console.log( Square.prototype.constructor ) // Rectangle
Собственно, далее он присваивает
constructor'у правильное значение (Square).
Делается это не для работоспособности кода, а во избежание ошибок в дальнейшем, ведь обращаясь к
constructor мы ожидаем получить ссылку на функцию-конструктор объекта, а ни как не его прототипа.