DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript綜合知識 >> 如何用JavaScript定義一個類
如何用JavaScript定義一個類
編輯:JavaScript綜合知識     

 我原來的寫法都是這樣:

  1 function Dog(){ 2   this.name = 'hachi'; 3 } 4    5 Dog.prototype = { 6   makeNoise:function(){ 7     alert('wangwangwang'); 8   } 9 };

後來又看到另外一種復雜一點而且看起來好像沒有必要的寫法:

  01 function Dog(){ 02   var privateVariable = 'secret'; 03    04   var fn = function(){ 05     //... 06   } 07    08   fn.prototype = { 09     makeNoise:function(){ 10       alert('wangwangwang'); 11     } 12   } 13    14   return fn; 15 }

這裡的Dog函數其實是一個 制造類 的函數,它返回了真正的Dog類。
感覺這樣做的好處是更好的實現了封裝。
例如這裡的privateVariable就是一個私有變量:

  1 var d = new Dog; 2 d.privateVariable //undefined

另外如果在第一個例子的最後加上一句:

  1 Dog.prototype = { 2   //e...WTF?? 3 }

這樣Dog就不是Dog了~

後來的理解:
上面這樣新建類的方法直接重寫了prototype對象。這樣prototype原本內置的屬性就沒有了(arguments, call, apply等)。
下面這種新建類的方法好像更好一些:

  1 var Dog = function(name){ 2   this.name = name; 3   var privateVariable = 'you cannot see me.'; 4   this.getPrivate = function(){return privateVariable;}; 5 }
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved