prototype和__proto__
程序员文章站
2022-05-08 16:51:01
...
当创建一个新函数时,就会为该函数创建一个prototype属性,指向函数的原型对象,所有的原型对象都会自动获取一个constructor(构造函数)属性,这个属性是一个指向prototype所在函数的指针
function A() {}
当调用构造函数创建一个实例时,该实例的内部将包含一个指针[[prototype]](内部属性),并且指向构造函数的原型对象,可以用__proto__访问
var a = new A();
可以看到a.__proto__与A.prototype相同,但是a没有prototype
总结:__proto__属性指向构造该对象的构造函数的原型对象
只有函数(A)才有prototype属性,对象(a)没有prototype属性,并且prototype指向函数的原型对象
在附上一张niubihonghong的图