每个函数就是一个对象(Function),函数对象都有一个子对象 prototype对象,类是以函数的形式来定义的。(函数都有prototype属性)
优点1:节省空间
function Person(_name){ this.name=_name; this.SayHello=function(){ alert('hi,'+this.name); } } var p1=new Person('Tom'); var p2=new Person('Jack');
p1,p2都有各自name,SayHello属性.
function Person(_name){ this.name=_name; } Person.prototype.SayHello=function(){ alert('hi,'+this.name); } var p1=new Person('Tom'); var p2=new Person('Jack'); p1.SayHello();
改进后,p1本身只有name属性,调用SayHello时,去它的原型链中寻找,p1与p2共享同一个SayHello.
优点2:面向对象的设计思想
function Teacher(_name){ this.name=_name; } Teacher.prototype=Person.prototype; var t=new Teacher('Tomas'); t.SayHello();
Teacher类继承Person类.将Teacher的原型链指向Person的原型链.Teacher则拥有了Person原型属性.
个人理解,希望大家指正!
prototype优点
最新推荐文章于 2023-07-24 20:29:46 发布