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

    主站蜘蛛池模板: 国产男女猛烈无遮挡免费视频 | 国产午夜亚洲不卡| 亚洲男人av香蕉爽爽爽爽| 亚洲裸男gv网站| 四虎影视在线看免费观看| 日本高清不卡aⅴ免费网站| 亚洲免费在线播放| 99在线精品视频观看免费| 成人免费无遮挡无码黄漫视频| 国产精品国产免费无码专区不卡| 亚洲色成人网站WWW永久四虎| 狼人大香伊蕉国产WWW亚洲| 成人免费乱码大片A毛片| 午夜福利不卡片在线播放免费| 在线观看www日本免费网站| 在线观看午夜亚洲一区| 国产免费一区二区三区| 亚洲精品中文字幕无码AV| 黄页网站在线观看免费| 2015日韩永久免费视频播放| 久久精品国产亚洲精品2020| 亚洲精品伦理熟女国产一区二区| 国产美女视频免费观看的网站| 精品国产污污免费网站aⅴ| 国产亚洲成人在线播放va| 你懂得的在线观看免费视频| 男女啪啪永久免费观看网站| 国产精品国产亚洲精品看不卡| 亚洲色www永久网站| 国产激情久久久久影院老熟女免费| 中文字幕人成无码免费视频| 亚洲AV无码国产丝袜在线观看| 亚洲国产成人AV网站| 国产亚洲情侣一区二区无码AV| 久草免费手机视频| 亚洲综合精品香蕉久久网| 最近中文字幕大全免费视频 | 国产免费私拍一区二区三区| 亚洲欧洲国产精品久久| 久久久久高潮毛片免费全部播放| 亚洲AV成人一区二区三区在线看|