http://developer.mozilla.org/ja/docs/Introduction_to_using_XPath_in_JavaScript
var xpathResult = document.evaluate( xpathExpression, contextNode, namespaceResolver, resultType, result );
result: 既存の XPathResult オブジェクトまたは null を指定します。 XPathResult オブジェクトが指定された場合には、そのオブジェクトが再利用されます。 null が指定された場合には新しい XPathResult オブジェクトが生成されます。
意味分からん!ってtwitterで言ってたらnanto_viさんに教えてもらいました.
ついでに速度の検証.
var l = 50000
console.time('a')
for(var i=0;i<l;i++){
var x = document.evaluate('0', document, null, 0, null);
var y = document.evaluate('0', document, null, 0, x);
}
console.timeEnd('a')// => 3926ms
console.time('b')
for(var i=0;i<l;i++){
var x = document.evaluate('0', document, null, 0, null);
var y = document.evaluate('0', document, null, 0, null);
}
console.timeEnd('b')// => 4678ms