//(1)每个函数都有一个prototype属性,它默认指向一个object空对象(原型对象)
//(2)prototype(显示原型或原型对象)和__proto__(隐式原型)都有一个constructor指回函数对象
//(3)每个函数都有个prototype,即显示原型
//(4)每个实例对象都有个__proto__,即隐式原型
function Scan() { }//创建函数时,内部做了this.prototype={}
let scan = new Scan();//实例化时,内部做了this.__proto=Scan.prototype
console.log(scan.__proto__===Scan.prototype);//构造函数内的this指向实例对象,所以scan.__proto__,输出true
关系图:
原型链: