2010-05-04 58 views
2
var ret = [] 
      ,xresult = document.evaluate(exp, rootEl, null, 
         XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null) 
      ,result = xresult.iterateNext(); 
    while (result) { 
    ret[ret.length]= result; 
    result = xresult.iterateNext(); 
    } 

任何人都可以解释我什么是ret = [],..,...语法?初始化数组?javascript语法

回答

2

你说得对。此代码:

var ret = [] 
      ,xresult = document.evaluate(exp, rootEl, null, 
         XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null) 
      ,result = xresult.iterateNext(); 

可以重写为:

var ret = []; 
var xresult = document.evaluate(exp, rootEl, null, 
         XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null); 
var result = xresult.iterateNext(); 

var foo = [];初始化FOO作为空数组。

+0

@artlung:是的,但我没有看到空'ret','xresult'和'result'之间的连接...请详细说明这一点,如果可以的话。除非没有连接,只需简短的书写 - 一行初始化。 – Pablo 2010-05-04 01:34:27

+0

没错,没有关系。所以例如var'var a = 1,b = 2,c = 3;'是写它的一种方法,但我也可以这样做:var a = 1; var b = 2; var c = 3;'...使用逗号仅仅是编码风格。根据您发布的代码,'ret','xresult'和'result'之间没有链接。 – artlung 2010-05-04 01:42:54

+0

那么,我不应该说“没有链接” - 你发布的while循环使用这三个变量来填充'ret'数组。但'var'行只是初始化。 – artlung 2010-05-04 01:45:41