一个问题。为什么如果任何对象是使用构造函数创建的,那么__proto__
它必然包含функция-конструктор.prototype
?
function NewObj() {};
let a = new NewObj;
console.log(a.__proto__ == NewObj.prototype); //true
点后指示的实际含义是什么prototype
?我问这个是因为它就像......prototype
一个构造函数包含一个属性constructor
,而该属性又包含对同一个构造函数的引用。那么,实际上连续两次引用同一个构造函数有什么意义呢?
例如,为什么这样的记录会产生false
?
function NewObj() {};
let a = new NewObj;
console.log(a.__proto__ == NewObj);
NewObj.prototype
通常用作由构造函数创建的所有实例共享的数据或方法的存储。这个NewObj.prototype
被自动分配为创建实例的原型,在原型链中搜索不直接存在于实例中的属性。也就是说,虽然默认情况下那里只有一个属性.constructor
,但您可以在那里添加任何内容。它通常是这样工作的:有关详细信息,请参阅以下部分:https ://learn.javascript.ru/prototypes