构造函数
function Person(){
}
var p1 = new Person();
Person就是一个构造函数,通过new创建了p1对象实例。
Person.prototype
//输出
{constructor: ƒ}
p1.__proto__ === Person.prototype;
> > > true
每个函数都会有一个prototype属性,这个属性是一个指针,指向一个对象(==只有函数才有==)
Person.prototype.constructor === Person === p1.constructor;
> > > true
Person.prototype.constructor
> > > ƒ Person(){}
总结
xxx.prototype 指向xxx自身的构造函数(xxx是一个class或者是一个构造函数)
xxx.prototype.proto 指向object原型
例如:
class A {
constructor(aa) {
this.aa = 'aa';
}
bb() {
return 'bb' ;
}
}
function Person(){
}
let cc = new Person();
- A和Person的prototype 指向自身
- A.prototype.proto 指向object原型
- cc.prototype 等于undefined
- cc.proto 等于 Person.prototype
自我理解
- .prototype 代表原型 即函数本身
- .proto 粗俗理解为调用人的“爹”,即爹的原型
网友评论