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

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

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

    JAVA & XML & JAVASCRIPT & AJAX & CSS

    Web 2.0 技術儲備............

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      77 隨筆 :: 17 文章 :: 116 評論 :: 0 Trackbacks
    ?1?var?Node?=?function(?nodeValue?)
    ?2?{
    ?3?????var?value?=?nodeValue;
    ?4?????
    ?5?????var?deep??=?0;
    ?6?????
    ?7?????var?childs?=?new?Array();
    ?8?????
    ?9?????/**?取得深度?**/
    10?????this.getDeep?=?function()
    11?????{
    12?????????return?deep;
    13?????}
    14?????
    15?????/**?設置深度?**/
    16?????this.setDeep?=?function(?nodeDeep?)
    17?????{
    18?????????deep?=?nodeDeep;
    19?????}
    20?
    21?????/**?獲取值?**/
    22?????this.getValue?=?function()
    23?????{
    24?????????return?value;
    25?????}
    26?
    27?????/**?添加子節點?**/
    28?????this.appendChild?=?function?(?node?)
    29?????{
    30?????????node.setDeep(?deep?+?1?);
    31?????????childs.push(?node?);
    32?????????return?node;
    33?????}
    34?
    35?????/**?所有子節點?**/
    36?????this.childNodes?=?function()
    37?????{
    38?????????return?childs;
    39?????}
    40?????
    41?????/*是否包含子節點*/
    42?????this.hasChild?=?function()
    43?????{
    44?????????return?childs.length?>?0?;
    45?????}
    46?
    47?????/*遍歷*/
    48?????this.walk?=?function(?visitor?)
    49?????{
    50?????????visitor.visite(?this?);
    51?????}
    52?}
    53?
    54?/*?訪問者?*/????
    55?var?Visitor?=?function?()
    56?{
    57?????this.visiteResult?=?"";
    58?????
    59?????this.visite?=?function?(?node?)
    60?????{
    61?????????//window.alert(?"深度?=?"?+?node.getDeep()?+??"?????"?+?node.getValue()?);
    62?????????this.visiteResult?+=?"?深度?=&nbsp;&nbsp;&nbsp;&nbsp;"?+?node.getDeep()?+??"&nbsp;&nbsp;&nbsp;&nbsp;?Value&nbsp;=&nbsp;"?+?node.getValue()?+?"<br/>";
    63?????????if(?node.hasChild()?)
    64?????????{
    65?????????????this.visiteChildNodes(?node?);
    66?????????}
    67?????}
    68?????
    69?????this.visiteChildNodes?=?function(?node?)
    70?????{
    71?????????var?nodes?=?node.childNodes();
    72?????????for(?var?i?=?0?;?i?<?nodes.length?;?i++?)
    73?????????{
    74?????????????this.visite(?nodes[i]?);
    75?????????}
    76?????}
    77?}

    代碼測試 :

    ?1?<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    ?2?<html?xmlns="http://www.w3.org/1999/xhtml">
    ?3?<head>
    ?4?<meta?http-equiv="Content-Type"?content="text/html;?charset=gb2312"?/>
    ?5?<title></title>
    ?6?<script?language="javascript">
    ?7?/*?遍歷?*/
    ?8?function?doWalk(?startNode?)
    ?9?{
    10?????var?visitor?=?new?Visitor();
    11?????startNode.walk(?visitor?);
    12?????document.getElementById("VisiteResult").innerHTML?=?visitor.visiteResult;
    13?}
    14?
    15?/*初始化一些數據*/????
    16?var?root?=?new?Node("大爺root?");
    17?var?node2?=?root.appendChild(?new?Node("大爺2號")?);
    18?????????????root.appendChild(?new?Node("大爺3號")?);
    19?????????????root.appendChild(?new?Node("大爺9號")?);
    20?var?node4?=?node2.appendChild(?new?Node("大爺4號")??);
    21?var?node5?=?node2.appendChild(?new?Node("大爺5號")??);
    22?????????????node2.appendChild(?new?Node("大爺6號")??);
    23?node4.appendChild(?new?Node("大爺7號")??);
    24?node5.appendChild(?new?Node("大爺8號")??);????
    25?</script>
    26?</head>
    27?
    28?<body>
    29?<table?width="60%"?align="center">
    30?????<tr>
    31?????????<th?height="30"?align="center"?valign="middle">左遞歸[深度優先遍歷]</th>
    32?????</tr>
    33?????<tr>
    34?????????<td?height="30"?align="left"?valign="middle">
    35?????????var?root?=?new?Node("大爺root?");<br?/>
    36?????????var?node2?=?root.appendChild(?new?Node("大爺2號")?);<br?/>
    37?????????????????????root.appendChild(?new?Node("大爺3號")?);<br?/>
    38?????????????????????root.appendChild(?new?Node("大爺9號")?);<br?/>
    39?????????var?node4?=?node2.appendChild(?new?Node("大爺4號")??);<br?/>
    40?????????var?node5?=?node2.appendChild(?new?Node("大爺5號")??);<br?/>
    41?????????????????????node2.appendChild(?new?Node("大爺6號")??);<br?/>
    42?????????node4.appendChild(?new?Node("大爺7號")??);<br?/>
    43?????????node5.appendChild(?new?Node("大爺8號")??);<br?/>
    44?????????</td>
    45?????</tr>
    46?????<tr>
    47?????????<td?height="50"?align="center"?valign="middle">
    48?????????<input?type="button"?value="?遍?歷?"??onclick="javascript:doWalk(?root?)"?/>
    49?????????</td>
    50?????</tr>
    51?????<tr>
    52?????????<td?id="VisiteResult"?height="100"?align="left"?valign="middle">
    53?????????</td>
    54?????</tr>
    55?</table>
    56?</body>
    57?</html>
    58?

    Javascript 弱類型的好處~~? 想怎么寫就怎么寫~ 好爽哇! 可以不顯示的實現 Visitor 和 Visitable 接口。


    代碼下載...........
    代碼下載...........
    代碼下載...........
    posted on 2006-10-25 22:47 Web 2.0 技術資源 閱讀(5571) 評論(3)  編輯  收藏 所屬分類: Javascript

    評論

    # re: Javascript 中的 Visitor 模式 → 實現樹型結構任意節點遍歷................ 2006-10-25 23:13 Web 2.0 技術資源
    沒實現 Visitor 和 Visitable 接口的 Visitor 模式.......

    哈哈........ 感覺已經變成簡單的策略模式了........

    實在不好意思......... 有點變味了.........   回復  更多評論
      

    # re: Javascript 中的 Visitor 模式 → 實現樹型結構任意節點遍歷................ 2006-10-26 15:10 搞挨踢的
    qq我恨你!  回復  更多評論
      

    # re: Javascript 中的 Visitor 模式 → 實現樹型結構任意節點遍歷................ 2007-10-30 21:07 創世紀計算機資源網
    樓主真強~  回復  更多評論
      

    主站蜘蛛池模板: 99ee6热久久免费精品6| 亚洲日本香蕉视频| 亚洲欧美日韩中文无线码| 日韩免费高清一级毛片在线| 国产午夜亚洲精品不卡电影| 日韩免费高清视频| 成人免费无码H在线观看不卡| 久久久久亚洲AV成人无码| 好吊妞在线新免费视频| 亚洲熟妇无码一区二区三区导航| 中文字幕无码免费久久99| 亚洲人成网站在线观看播放动漫| 免费看片在线观看| 又大又硬又粗又黄的视频免费看 | 久久久久久精品免费免费自慰| 日韩亚洲人成在线| 久久亚洲国产精品一区二区| 女人被男人躁的女爽免费视频| 久久久精品视频免费观看 | 国产成人3p视频免费观看| 在线看亚洲十八禁网站| 99久久精品国产亚洲| 亚洲国产精品一区二区第四页| 成年黄网站色大免费全看| 国产无遮挡色视频免费观看性色| 久久亚洲精品国产亚洲老地址 | 美女扒开屁股让男人桶爽免费| 亚洲香蕉免费有线视频| 亚洲最大av无码网址| 西西人体免费视频| 看一级毛片免费观看视频| 亚洲免费福利视频| 亚洲邪恶天堂影院在线观看| a毛片基地免费全部视频| a视频在线观看免费| 一区二区免费电影| 最新亚洲人成无码网www电影| 亚洲精品国产精品乱码在线观看| 91精品国产免费入口| 中文字幕在线成人免费看| 国产区图片区小说区亚洲区|