我正在深入研究 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(使用前将#替换为@)