面向对象与原型2
1.基础的原型认识:我们创建的每个函数都有一个prototyoe属性,这个属性是一个对象,它的用途是包含可以由特定类型的所有实例共享的属性和方法。逻辑上可以这么理解:prototype通过调用构造函数而创建的那个对象的原型对象。另外要说的_proto_是指向原型属性constructor的。
2.原型的好处:可以让所有对象实例共享它所包含的属性和方法,也就是说,不必在构造函数中定义对象信息,可直接将这些信息添加到原型中。
3.原型示例:
//原型 function Pro(){} //先声明一个构造函数 //在原型里添加属性和方法 Pro.prototype.name='Lee'; Pro.prototype.age=100; Pro.prototype.run=function(){ return this.name+this.age; } //打印结果 var pro1=new Pro(); alert(pro1.run());
4.原型里需要注意一点:原型里的方法的引用地址是一致的,但是方法是不一样的,即:
pro1.run()!=pro2.run();//假如有pro2的情况下 pro1.run==pro2.run;
5.为了更好的封装效果,原型的创建也可以这样写:
function Pro(){} Pro.prototype={ //使用字面量的方式创建 name:'Lee', age:100, run:function(){ return this.name+this.age; } }