【发布时间】:2021-06-30 05:00:05
【问题描述】:
我有一个关于 Javascript 继承的问题。我想创建一个纯对象。我可以使用Object.create(null) 来做到这一点。但我决定通过构造函数来创建它。
let User = function () {};
User.prototype = null;
所以现在我可以预期,使用new User() 语法创建的每个对象都没有任何原型。
但是
let user = new User();
console.log(user.__proto__ == Object.prototype); //true
为什么这里不为空?为什么这里不纯净?我想我错过了一些重要的东西。
【问题讨论】:
-
试试这个
User.__proto__ = null;User.prototype和user.__proto__是 2 个不同的字段 -
__proto__由new运算符 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 添加 -
@AndriNic 不,不要那样做,没有理由弄乱
Function.prototype的链接。
标签: javascript inheritance constructor prototype