javascript学习随笔(二)原型prototype

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不会克隆同名函数.

 

你可能感兴趣的:(JavaScript)