function SuperType() {}
function SubType() {}
console.log(SubType.prototype.propertyIsEnumerable('constructor')); // false
SubType.prototype = Object.create(SuperType.prototype);
SubType.prototype.constructor = SubType;
console.log(SubType.prototype.propertyIsEnumerable('constructor')); // true
SubType.prototype = Object.create(SuperType.prototype, {
constructor : { value:SubType, writable:true, enumerable:false, configurable:true }
});
console.log(SubType.prototype.propertyIsEnumerable('constructor')); // false
By the way: Wouldn't it be always safer and easier to use the following method of changing the prototype:
Object.setPrototypeOf(SubType.prototype, SuperType.prototype);
console.log(SubType.prototype.propertyIsEnumerable('constructor')); // false