日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

用JAVASCRIPT實(shí)現(xiàn)靜態(tài)對(duì)象、靜態(tài)方法和靜態(tài)屬性

 CevenCheng 2012-05-24

用JAVASCRIPT實(shí)現(xiàn)靜態(tài)對(duì)象、靜態(tài)方法和靜態(tài)屬性

Javascript語(yǔ)言的面向?qū)ο筇卣骱苋?,其他面向?qū)ο笳Z(yǔ)言在創(chuàng)建類時(shí)只要使用關(guān)鍵字static即可指定類為靜態(tài)類,Javascript沒(méi)有提供static這樣的關(guān)鍵字,要讓Javascript也具有“靜態(tài)”特性只有靠一些“奇技淫巧”了。

代碼中列舉了兩種靜態(tài)方法/屬性的實(shí)現(xiàn)方式,一種是靜態(tài)類的靜態(tài)方法和屬性,另一種是非靜態(tài)類的靜態(tài)方法和屬性,代碼說(shuō)明都寫在每行的代碼注釋里,這里就不重復(fù)了。

JAVASCRIPT:

  1. /****************************************
  2. * 方法一
  3. * 類、方法、屬性都為靜態(tài)類型
  4. * 不能創(chuàng)建實(shí)例
  5. *****************************************/
  6. var Time = {
  7.     today: ‘2009-3-8′,
  8.     weather: ‘rain’,
  9.     show: function() {
  10.         alert(‘Today is ‘ + this.today);
  11.     }
  12. };
  13.  
  14. //靜態(tài)對(duì)象可直接使用,無(wú)需創(chuàng)建實(shí)例
  15. alert(‘It is ‘ + Time.weather + ‘ today.’);
  16. Time.show();
  17.  
  18. //下面的代碼會(huì)出錯(cuò),因?yàn)殪o態(tài)類不能創(chuàng)建實(shí)例
  19. //var t = new Time();
  20. //t.show();
  21.  
  22. /****************************************
  23. * 方法二
  24. * 普通對(duì)象,同時(shí)擁有靜態(tài)和非靜態(tài)屬性、方法
  25. * 可以用實(shí)例化
  26. * 注意:
  27. *   1.靜態(tài)方法/屬性使用類名訪問(wèn)
  28. *   2.非靜態(tài)方法/屬性使用實(shí)例名訪問(wèn)
  29. *****************************************/
  30. function Person(name) {
  31.     //非靜態(tài)屬性
  32.     this.name = name;
  33.     //非靜態(tài)方法
  34.     this.show = function() {
  35.         alert(‘My name is ‘ + this.name + ‘.’);
  36.     }
  37. }
  38. //添加靜態(tài)屬性,人都是一張嘴
  39. Person.mouth = 1;
  40. //添加靜態(tài)方法,哇哇大哭
  41. Person.cry = function() {
  42.     alert(‘Wa wa wa …’);
  43. };
  44. //使用prototype關(guān)鍵字添加非靜態(tài)屬性,每個(gè)人的牙可能不一樣多
  45. Person.prototype.teeth = 32;
  46.  
  47. //非靜態(tài)方法必須通過(guò)類的實(shí)例來(lái)訪問(wèn)
  48. var me = new Person(‘Zhangsan’);
  49. //使用非靜態(tài)方法、屬性
  50. me.show();
  51. alert(‘I have ‘ + me.teeth + ‘ teeth.’);
  52. //使用靜態(tài)方法、屬性
  53. Person.cry();
  54. alert(‘I have ‘ + Person.mouth + ‘ mouth.’);

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多