JavaScript三类方法:
1、类方法;2、对象方法;3、原型方法;注意三者异同
例:
1 function People(name){ 2 this.name=name; 3 //对象方法 4 this.Introduce=function(){ 5 console.log('My Name Is '+this.name); 6 } 7 } 8 9 //类方法 10 People.Run=function(){ 11 console.log('I Can Run'); 12 } 13 14 //原型方法 15 People.prototype.IntroduceChinese=function(){ 16 console.log('我的名字是'+this.name); 17 } 18 19 //测试 20 var p=new People('Tom'); 21 22 p.Introduce(); 23 People.Run(); 24 p.IntroduceChinese();
JavaScript对象类型原型引用,切记将某对象的原型赋给某对象原型,这不是继承关系,而是将克隆,且存在冲突函数或属性时,保留自己的函数和属性
例1、
1 function BaseClass(){ 2 this.showMsg=function(){ 3 alert('baseClass::showMsg'); 4 }; 5 } 6 7 function ExtendClass(){ 8 9 } 10 11 ExtendClass.prototype=new BaseClass(); 12 13 var extend=new ExtendClass(); 14 extend.showMsg();//弹出baseClass::showMsg
例2、
1 function BaseClass(){ 2 this.showMsg=function(){ 3 alert('bassClass::showMsg'); 4 }; 5 } 6 7 function ExtendClass(){ 8 this.showMsg=function(){ 9 alert('extendClass::showMsg'); 10 }; 11 } 12 13 ExtendClass.prototype=new BassClass(); 14 15 var extend=new ExtendClass(); 16 extend.showMsg();//弹出extendClass::showMsg
函数运行时会先去本体的函数中去找,如果找到则运行,找不到则去prototype中寻找函数。或者可以理解为prototype不会克隆同名函数.