1.每个函数function都有一个prototype,即显示原型
2.每个实例对象都有一个__proto__,可称为隐式原型
3.对象的隐式原型的值为其对应构造函数的显示原型的值
内存结构:
总结:
函数的prototype属性:在定义函数时自动添加的,默认值是一个空的Object对象
对象的__proto__属性:创建对象是自动创建 添加的,默认值为构造函数的prototype属性值
程序员能直接操作显示原型,但不能直接操作隐式原型(ES6之前)
function Fn(){}
var fn=new Fn()
console.log(Fn.prototype,fn.__proto__)
console.log(Fn.prototype===fn.__proto__)
Fn.prototype.test=function(){
console.log('test()')
}
fn.test()