03 函数的原型 prototype
2019-11-27 本文已影响0人
Suuuuunie
1. 每个函数 function 都有一个 prototype 属性,它默认指向一个 Object 空对象(即原型对象)
function Fn() {
}
console.log(Fn.prototype)
结果为:
![](https://img.haomeiwen.com/i15915508/b3e818ab7fc5249d.png)
从上图可以看出来,Fn.prototype 除了 constructor 和 proto 是没有我们自己定义的方法或者属性的,所以称为空 Object 对象。
2. 原型对象上都有一个 constructor,它指向函数对象
console.log(Fn.prototype.constructor === Fn) // true
如下图所示,构造函数和它的原型对象是相互引用关系。
![](https://img.haomeiwen.com/i15915508/4fb05040ce269e44.png)
3. 给原型对象添加属性或者方法,它的实例对象可以直接访问到
Fn.prototype.test = function() {
console.log('test()');
}
const fn = new Fn();
fn.test(); // test()