<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 技術資源 閱讀(5572) 評論(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 創世紀計算機資源網
    樓主真強~  回復  更多評論
      

    主站蜘蛛池模板: caoporn成人免费公开| 亚洲精品无码久久久久APP| 一边摸一边桶一边脱免费视频| 嫩草视频在线免费观看| 亚洲日韩精品无码专区| 女人被男人躁的女爽免费视频| 亚洲中文字幕无码一去台湾| 999国内精品永久免费观看 | 亚洲综合色区在线观看| 三级片免费观看久久| 亚洲性在线看高清h片| 免费a级毛片无码a∨免费软件| 亚洲精品无码永久中文字幕| 国产午夜无码片免费| 亚洲AV成人一区二区三区AV| 永久免费视频网站在线观看| 亚洲校园春色另类激情| 国产伦精品一区二区三区免费下载 | 国产精品亚洲天堂| 亚洲成年看片在线观看| 国产成人精品免费视频大全| 亚洲欧洲自拍拍偷午夜色无码| 日韩免费观看一区| 亚洲宅男精品一区在线观看| 成在线人永久免费视频播放| 一个人看的在线免费视频| 亚洲av永久无码制服河南实里| 中文字幕亚洲免费无线观看日本| 亚洲av无码片在线观看| 国产国产人免费视频成69大陆| 日韩在线一区二区三区免费视频 | 亚洲视频小说图片| 最近中文字幕mv免费高清电影| 在线观看亚洲免费视频| 亚洲国产精品VA在线看黑人 | **实干一级毛片aa免费| 亚洲欧美日韩综合久久久久| 亚洲午夜福利精品久久| 99久久国产免费-99久久国产免费| 亚洲AV无码国产精品色| 久久久久亚洲AV成人网|