1. 每个函数 function 都有一个 prototype 属性,它默认指向一个 Object 空对象(即原型对象)
function Fn() {
}
console.log(Fn.prototype)
结果为:
image.png
从上图可以看出来,Fn.prototype 除了 constructor 和 proto 是没有我们自己定义的方法或者属性的,所以称为空 Object 对象。
2. 原型对象上都有一个 constructor,它指向函数对象
console.log(Fn.prototype.constructor === Fn) // true
如下图所示,构造函数和它的原型对象是相互引用关系。
image.png
3. 给原型对象添加属性或者方法,它的实例对象可以直接访问到
Fn.prototype.test = function() {
console.log('test()');
}
const fn = new Fn();
fn.test(); // test()
网友评论