1.概念:
我们所创建的每一个函数,解析器都会向函数中添加一个属性prototype,这个属性对应着一个对象,
这个对象就是原型对象。
注释:如果函数作为普通函数调用prototype是没有任何作用的,
当以构造函数调用时,所创建的对象中会有一个隐含的属性;
指向该构造函数的原型对象,可以通过 __proto__来访问属性。
那么,原型对象就相当于一个 **公共的区域**,所有同一个类的实例都可以访问到这个原型对象,
当我们访问一个对象的属性或方法时,它会先在对象自身找,找不到再去原型对象中找。
比如:
function MyClass{
}
// 向原型对象中添加一个属性a.
MyClass.prototype.a = 123;
// 向原型对象中添加一个方法.
MyClass.prototype.sayHello = function(){
alert("你好!");
}
var mc = new MyClass(); // 同一个类的实例
var mc1 = new MyClass();
console.log( MyClass.prototype ); // MyClass.prototype 就是原型对象
console.log( mc1. __proto__ == MyClass.prototype );
希望对你有收获哦~