<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Open-Source World

    let's learn and study.
    posts - 28, comments - 23, trackbacks - 0, articles - 1

    javascript反射機制

    Posted on 2007-09-04 09:48 tearofmoscow 閱讀(959) 評論(0)  編輯  收藏
    最近才了解javascript的反射機制,只知道Java中有反射機制,沒想到這腳本中也有反射機制.真是應了我的那句話"沒有做不到,只有想不到".費話不說太多,還是分享一下我的學習心得.

    我們先創建一個簡單的對象.
    js 代碼
    1. <script>"text/javascript">  
    2. var A={  
    3.     author:"poyexinghun",  
    4.     init:function(){  
    5.         alert("load A");  
    6.     }  
    7. }  
    8.   
    9. function showObject(obj){  
    10.     for(var p in obj){  
    11.         if(typeof obj[p]=="function"){  
    12.             obj[p]();  
    13.         }else if(typeof obj[p]=="string"){  
    14.             document.write(p+"--->"+obj[p]+"
      "
      );  
    15.         }  
    16.     }  
    17. }  
    18. showObject(A);  
    19. </script> 
    注意:
             typeof是用來測試數據類型的,它有六種返回值:"number," "string," "boolean," "object," "function," 和 "undefined."(不過要注意這六種返回值一定要是小寫的.我在學習的過程中就遇到過這樣的問題).

              我們首先對傳進來的對象A做了一次遍歷,會得到對象中的屬性名和方法名,在用ObjectName[propertyName]查看他們的類型.

    我們在看看下一個問題:
    js 代碼
    1. <script>"text/javascript">  
    2. var A={  
    3.     author:"poyexinghun",  
    4.     init_tiem:new Date(),  
    5.     init:function(){  
    6.         if(arguments.length == 1){  
    7.             if(typeof arguments[0] =="string"){  
    8.                 alert(arguments[0]);  
    9.             }else{  
    10.                 alert("args isn't string type");  
    11.             }  
    12.         }else{  
    13.             alert("load A");  
    14.         }  
    15.     }  
    16. }  
    17.   
    18. function showObject(obj){  
    19.     for(var p in obj){  
    20.         if(typeof obj[p]=="function"){  
    21.             obj[p](new Date());  
    22.         }else if(typeof obj[p]=="string"){  
    23.             document.write(p+"--->"+obj[p]+"
      "
      );  
    24.         }else if(typeof obj[p]=="object"){  
    25.             document.write(p+"--->"+obj[p].getYear()+"-"+obj[p].getMonth()+"-"+obj[p].getDate()+"
      "
      );  
    26.         }  
    27.     }  
    28. }  
    29. showObject(A);  
    30. A["init"]("aaaa");  
    31. </script>  
    其實這個代碼塊有二個看點:
    從第6行開始到第14行.
            每個執行的方法中都會有一個Arguments對象,作用是獲得執行方法中的參數.有了這個東東,我們就可以寫多態的方法了.

    還一個就是第30行.
            其實上面那段代碼搞懂了,下面這個就知道了,其實這個是我寫文章的時候想出來的.呵呵.


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 男男gvh肉在线观看免费| 亚洲精品无码你懂的网站| 99精品视频在线观看免费| 亚洲AV无码一区二区三区久久精品| 久久久久久久综合日本亚洲 | 久久亚洲精品中文字幕三区| 日本二区免费一片黄2019| 成人免费一级毛片在线播放视频| 免费成人高清在线视频| 国产精品免费αv视频| 国产亚洲精品第一综合| 亚洲熟妇无码AV| 亚洲国产精品免费在线观看| 久久精品国产亚洲av麻豆小说| 曰韩亚洲av人人夜夜澡人人爽 | 黄色一级毛片免费| 亚洲欧美日韩中文高清www777| 久久亚洲AV无码精品色午夜麻豆| 亚洲国产美女精品久久久久∴| 亚洲人成无码网站久久99热国产| 少妇亚洲免费精品| 亚洲电影日韩精品 | 中文字幕亚洲码在线| 亚洲日韩在线视频| 亚洲精品自拍视频| 中文字幕亚洲综合久久| 久久亚洲精品无码aⅴ大香| 亚洲国产一区在线| 亚洲色大成网站www永久| 77777_亚洲午夜久久多人| 亚洲性无码av在线| 麻豆狠色伊人亚洲综合网站| 亚洲中文字幕日本无线码| 亚洲一卡2卡三卡4卡无卡下载 | 热久久精品免费视频| 国产伦精品一区二区三区免费下载| 精品久久洲久久久久护士免费| 国产一级做a爱免费视频| 亚洲国产精品狼友中文久久久| 国产亚洲欧洲Aⅴ综合一区| 亚洲国产精品无码久久SM|