gpt4 book ai didi

javascript - 为什么 MDN 的 `Object.create` polyfill 没有设置 `prototype.constructor` ?

转载 作者:数据小太阳 更新时间:2023-10-29 05:29:54 25 4
gpt4 key购买 nike

考虑 MDN's 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();
};
})();
}

特别关注这两行:

F.prototype = o;
return new F();

我想知道,为什么设置F.prototype.constructor = F;不合适?

F.prototype = o;
F.prototype.constructor = F; // why not?
return new F();

最佳答案

I was wondering, why isn't it appropriate to set F.prototype.constructor = F;?

F 是一个临时函数,似乎是故意的,无法从 Object.create 外部引用它。

关于javascript - 为什么 MDN 的 `Object.create` polyfill 没有设置 `prototype.constructor` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23035142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com