Given the MDN Object.create polyfill :
if (typeof Object.create != 'function') { (function () { var F = function () {}; Object.create = function (o) { if (arguments.length > 1) { throw Error('Second argument not supported');} if (o === null) { throw Error('Cannot set a null [[Prototype]]');} if (typeof o != 'object') { throw TypeError('Argument must be an object');} F.prototype = o; return new F(); }; })(); }
Focusing on these two lines:
F.prototype = o; return new F();
I was wondering why you should not set F.prototype.constructor = F; ?
F.prototype = o; F.prototype.constructor = F; // why not? return new F();
source share