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

 

posted @ 2015-05-19 14:18  jiapeng  阅读(157)  评论(0)    收藏  举报