前端修炼-javascript关键字之prototype

   通常来说,javascript中的对象就是一个指向prototype的指针和一个自身的属性列表。只有构造器(Object,Function,Array,Date,String)才具有且会有一个prototype属性。原型链继承就是创建一个新的指针,指向构造器的prototype属性。

 prototype属性列表会默认有一个constructor(构造函数)属性,这个属性是一个指向prototype属性所在指针,也就是当前对象自己。

    

 1 function baseClass()
 2 {
 3     this.showMsg = function()
 4     {
 5         alert("baseClass::showMsg");   
 6     }
 7    
 8     this.baseShowMsg = function()
 9     {
10         alert("baseClass::baseShowMsg");
11     }
12 }
13 baseClass.showMsg = function()
14 {
15     alert("baseClass::showMsg static");
16 }
17 
18 function extendClass()
19 {
20     this.showMsg =function ()
21     {
22         alert("extendClass::showMsg");
23     }
24 }
25 extendClass.showMsg = function()
26 {
27     alert("extendClass::showMsg static")
28 }
29 
30 extendClass.prototype = new baseClass();
31 var instance = new extendClass();
32 
33 instance.showMsg(); //显示extendClass::showMsg
34 instance.baseShowMsg(); //显示baseClass::baseShowMsg
35 instance.showMsg(); //显示extendClass::showMsg
36 
37 baseClass.showMsg.call(instance);//显示baseClass::showMsg static
38 
39 var baseinstance = new baseClass();
40 baseinstance.showMsg.call(instance);//显示baseClass::showMsg

 

posted on 2017-04-25 11:42  hardy_Wang  阅读(157)  评论(0编辑  收藏  举报

导航