1.函数的原型叫做显示原型prototype
2.对象的原型叫做隐式原型__proto__
在我们new一个对象时相当于把函数的prototype直接赋值给了对象的__proto__
平时我们声明一个对象时其实就是new了一个Object
let info={}
// 相当于
// let info=new Object()
在我们使用info.abc时他首先会在自己的属性中去找abc,如果找不到就会去自己的原型对象中去找,info的原型对象指向的时Object的原型对象,如果Object中也没有就会去Object的__proto__找,Object的__proto__指向的是一个null,这个过程中如果有一层找到了,就会直接返回abc