svnno****@sourc*****
svnno****@sourc*****
2011年 3月 23日 (水) 23:21:16 JST
Revision: 2501 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2501 Author: dhrname Date: 2011-03-23 23:21:16 +0900 (Wed, 23 Mar 2011) Log Message: ----------- importNodeメソッドについて、var文を整理 Modified Paths: -------------- branches/07x/073/org/w3c/core.js Modified: branches/07x/073/org/w3c/core.js =================================================================== --- branches/07x/073/org/w3c/core.js 2011-03-22 14:28:00 UTC (rev 2500) +++ branches/07x/073/org/w3c/core.js 2011-03-23 14:21:16 UTC (rev 2501) @@ -854,28 +854,30 @@ *自身のドキュメントノードに、他のドキュメントノードから作られたノードを取り込みたいときに用いる */ /*Node*/ Document.prototype.importNode = function( /*Node*/ importedNode, /*boolean*/ deep) { - var s, imn = importedNode.nodeType; + var s, + imn = importedNode.nodeType, + attr, att, fi, n, uri, ch; /*以下の処理は引き渡されたimportedNodeがMSXMLによって解析された *データであることを前提にしている */ if (imn === /*Node.ELEMENT_NODE*/ 1) { s = this.createElementNS(importedNode.namespaceURI, importedNode.nodeName); - var attr = importedNode.attributes, att; + attr = importedNode.attributes; for (var i=0,atli=attr.length;i<atli;++i) { //NamedNodeMapを検索する att = this.importNode(attr[i], false); s.setAttributeNodeNS(att); } if (deep) { - var fi = importedNode.firstChild, n; + fi = importedNode.firstChild; while (fi) { //子ノードを検索して、子供がいれば、importNodeメソッドを再帰的に実行する n = this.importNode(fi, true); s.appendChild(n); fi = fi.nextSibling; } } - i = attr = att = atli = n = ch = chli = null; + i = atli = null; } else if(imn === /*Node.ATTRIBUTE_NODE*/ 2) { - var uri = importedNode.namespaceURI; + uri = importedNode.namespaceURI; uri = (uri === "") ? null : uri; //空文字列はnullとして扱うようにする(MSXMLが空文字列を返す時の対策) s = this.createAttributeNS(uri, importedNode.nodeName); s.nodeValue = importedNode.nodeValue; @@ -886,19 +888,19 @@ } else if(imn === Node.DOCUMENT_FRAGMENT_NODE) { s = this.createDocumentFragment(); if (deep) { - var ch = importedNode.childNodes, n; + ch = importedNode.childNodes; for (var i=0,chli=ch.length;i<chli;i++) { //子ノードを検索して、子供がいれば、importNodeメソッドを再帰的に実行する n = this.importNode(ch[i], true); s.appendChild(n); } } - i = n = ch = chli = null; + i = chli = null; } else if(imn === Node.CDATA_SECTION_NODE) { s = this.createCDATASection(importedNode.data); } else if(imn === Node.ENTITY_REFERENCE_NODE) { s = this.createEntityReference(importedNode.nodeName); if (deep) { - var fi = importedNode.firstChild, n; + fi = importedNode.firstChild; while (fi) { n = this.importNode(fi, true); s.appendChild(n); @@ -919,7 +921,7 @@ } else { throw (new DOMException(DOMException.NOT_SUPPORTED_ERR)); } - importedNode = deep = null; + importedNode = deep = imn = attr = att = fi = n = uri = ch = null; return s; }; /*createElementNSメソッド