prototype:
只要创建一个新函数,就会为该函数创建一个 prototype 属性,这个属性指向函数的原型对象。默认情况下,所有原型对象会获得一个constructor 属性,这个属性是一个指向 prototype 属性所在函数的指针。
_proto_:
当调用构造函数创建一个实例后,该实例的内部将包含一个指针,指向构造函数的原型对象。在Firefox、Safari、Chrome 可以使用 _proto_ 来访问。
最重要的是: 这个连接是存在于实例与构造函数的原型对象之间,而不是存在与实例与构造函数之间 。
<script>
function Person(){
//在构造函数的原型上创建属性和方法
Person.prototype.name = 'mike';
Person.prototype.age = 23;
Person.prototype.sayName = function(){
console.log(this.name);
};
}
// 创建一个名为 person1 的实例
var person1 = new Person();
</script>
在这个例子中,创建了一个叫 Person 的构造函数,然后在它的原型对象上增加方法和属性,然后创建了一个实例 person1, 在火狐、Safari、谷歌浏览器中 可以使用 person1._proto_ 来访问 Person函数的原型对象 即 Person.prototype