Object.Create() 在幕后做什么?

2024-03-14

我正在深入研究 JavaScript 的原型继承。当使用 Object.Create() 创建对象时,有人可以展示幕后发生了什么吗? Object.Create() 是否依赖于幕后的 new 和构造函数?


When Object.create()用于创建对象,有人可以展示幕后发生了什么吗?

低级细节。Object.create几乎是一个原始操作 - 类似于当{}评估对象字面量。只是尝试去理解它在做什么 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create.

也就是说,通过新的 ES6 操作,它可以通过以下方式实现:

function create(proto, descriptors) {
    return Object.defineProperties(Object.setPrototypeOf({}, proto), descriptors);
}

Does Object.create()取决于new和幕后的构造函数?

一点都不。恰恰相反。这new运算符可以实现为

function new(constructor, arguments) {
    var instance = Object.create(constructor.prototype);
    constructor.apply(instance, arguments);
    return instance;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Object.Create() 在幕后做什么? 的相关文章

随机推荐