再说说__proto__,这个孩子性格慢向,所以即使在现代浏览器广为支持得今天也不建议使用,性能特别慢,而且影响所有来自该[[prototype]]的对象。只是拿出来了解了解;
1.它是个啥?
原型对象的属性访问器(Object.prototype.__proto__),能够暴露所有通过它访问的对象的[[prototype]]属性;
2.eg:
function Person(){}
let p = {
a:function(){
alert(8)
}
}
Person.prototype.__proto__ = p;
var you = new Person();
you.a();
console.log(Person.prototype) ////Object{ constructor:function Person(){} } 构造函数Person的原型对象是Object对象
console.log(you.__proto__ ) ////Object{ constructor:function Person(){} } 由此看出实例对象的原型对象是构造函数的原型对象
console.log(you.__proto__ === Person.prototype)/// true