Во-первых, пожалуйста, не делайте этого:
B.prototype = new A;
Сделайте это вместо ( шим Object.create
для старых браузеров):
B.prototype = Object.create(A.prototype);
Что касается constructor
, ничего не сломается, если вы этого не сделаете, но если вы этого не сделаете:
A = function() {};
var a = new A();
console.log(a.constructor); // A
B = function() {};
var b = new B();
console.log(b.constructor); // A (!)
... установка свойства constructor
прототипа обратно в фактическую функцию конструктора позволяет вам сделать это:
B.prototype.constructor = B;
var b = new B();
console.log(b.constructor); // B