Why doesn't MDN `Object.create` polyfill set` prototype.constructor`?

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(); 
+6
source share
1 answer

I was wondering why it is inappropriate to set F.prototype.constructor = F ;?

F is a temporary function, and it seems intentional that there is no way to refer to it from outside Object.create .

+3
source

All Articles