我们创建的每一个函数都有一个 prototype 属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。
使用原型对象的好处是可以让所有对象实例共享它所包含的属性和方法。换句话说,不必在构造函数中定义对象实例的信息,而是可以将这些信息直接添加到原型对象中。
<script type="text/javascript">
//能够共享的放在构造函数里面
function CreatePerson(name){
this.name=name;
}
//不能够共享的放在原型里面
CreatePerson.prototype.showName=function(){
alert(this.name);
}
var p1 = new CreatePerson('xiaoming');
var p2 = new CreatePerson('xiaoqiang');
alert(p1.showName == p2.showName);//true-->they have same address.
//这就是原型模式和构造函数模式的不同之处,即这些属性和方法是由所有实例共享的
</script>
原型模式的写法:
<script type="text/javascript">
// function 构造函数()
// {
// this.属性;
// }
function construct(){
this.property
}
// 构造函数.原型.方法 = function(){}
construct.prototype.method=function(){}
// var 对象1 = new 构造函数();
var obj1 = new construct();
// 对象1.方法();
obj1.method();
</script>