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

    主站蜘蛛池模板: 最新猫咪www免费人成| 成人免费观看一区二区| 亚洲国产一级在线观看| 国产亚洲视频在线观看| 免费大香伊蕉在人线国产| 亚洲国产欧美国产综合一区 | 亚洲AV无码乱码在线观看富二代| 美女被免费视频网站| 亚洲精品国精品久久99热 | 永久在线观看免费视频| 亚洲国产精品VA在线观看麻豆 | 亚欧在线精品免费观看一区| 亚洲欧洲日产v特级毛片| 黄+色+性+人免费| 中日韩亚洲人成无码网站| 国产美女a做受大片免费| 日韩在线观看视频免费 | 亚洲高清资源在线观看| 91免费国产在线观看| 亚洲人成色777777精品| 亚洲国产免费综合| a毛片久久免费观看| 亚洲精品在线播放| 免费黄色小视频网站| 国产偷国产偷亚洲高清在线| 久久亚洲色一区二区三区| 午夜视频免费在线观看| 亚洲1区1区3区4区产品乱码芒果| 久久亚洲精品无码播放| 久久国产免费观看精品3| 亚洲中文字幕无码爆乳| 亚洲精品国自产拍在线观看| 久久国产高潮流白浆免费观看| 亚洲最大福利视频| 自拍偷自拍亚洲精品情侣| 麻豆视频免费播放| 老司机午夜精品视频在线观看免费| 亚洲人成人无码网www电影首页| 国产精品久久免费| 黄色视频在线免费观看| 亚洲人配人种jizz|