posts - 28,  comments - 15,  trackbacks - 0
          今天在看完xtree.js代碼后,發(fā)現(xiàn)一個(gè)問(wèn)題。在執(zhí)行javascript的document.write(obj)方法時(shí),如果obj實(shí)現(xiàn)了prototype的toString()方法,document.wirte方法將能自動(dòng)調(diào)用obj的toString()方法。代碼如下:
          ???/*----------?? 樹(shù)構(gòu)造代碼 ---------*/
          ??????? if (document.getElementById) {
          ?????????? var tree = new WebFXTree('Root');
          ?????????? tree.setBehavior('classic');
          ?????????? var a = new WebFXTreeItem('1');
          ?????????? tree.add(a);
          ?????????? var b = new WebFXTreeItem('1.1');
          ?????????? a.add(b);
          ????????? b.add(new WebFXTreeItem('1.1.1'));
          ????????? b.add(new WebFXTreeItem('1.1.2'));
          ????????? b.add(new WebFXTreeItem('1.1.3'));
          ????????? var f = new WebFXTreeItem('1.1.4');
          ????????? b.add(f);

          ???????? document.write(tree);

          /*------------------ xtree.js代碼片段 ----------*/

          WebFXTree.prototype.toString = function() {
          alert("it's here!");
          ?var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this, event)\">" +
          ??"<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\">" +
          ??"<a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\"" +
          ??(this.target ? " target=\"" + this.target + "\"" : "") +
          ??">" + this.text + "</a></div>" +
          ??"<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
          ?var sb = [];
          ?for (var i = 0; i < this.childNodes.length; i++) {
          ??sb[i] = this.childNodes[i].toString(i, this.childNodes.length);
          ?}
          ?this.rendered = true;
          ?return str + sb.join("") + "</div>";
          };

          經(jīng)過(guò)跟蹤,證實(shí)在執(zhí)行document.write(tree)時(shí),調(diào)用了WebFXTree.prototype.toString 方法。
          posted on 2009-08-13 16:20 zhangxl 閱讀(1020) 評(píng)論(1)  編輯  收藏


          FeedBack:
          # re: JavaScript的toString()方法自動(dòng)調(diào)用
          2011-03-14 09:10 |
          更呼庚呼癸  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2009年8月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿(1)

          隨筆分類(lèi)(17)

          隨筆檔案(28)

          文章分類(lèi)(30)

          文章檔案(30)

          相冊(cè)

          收藏夾(2)

          hibernate

          java基礎(chǔ)

          mysql

          xml

          關(guān)注

          壓力測(cè)試

          算法

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 96758
          • 排名 - 600

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 漳州市| 二手房| 商城县| 连城县| 磐安县| 肃北| 大理市| 固始县| 固安县| 新余市| 贵州省| 冀州市| 无锡市| 阳江市| 始兴县| 武定县| 凤庆县| 祁阳县| 信丰县| 霍山县| 多伦县| 池州市| 天台县| 葵青区| 阆中市| 曲阜市| 阿巴嘎旗| 保康县| 红桥区| 蓬安县| 黄浦区| 嘉峪关市| 璧山县| 姜堰市| 文山县| 银川市| 麟游县| 巩留县| 临漳县| 平阴县| 林州市|