2011-04-04 75 views
1

我看了这段代码,找了一段时间后,在网上找我仍然没有得到它。什么意思返回{someObject:someObject}

var client = function(){ 

    var engine = { 

     ie: 0, 
     gecko: 0, 
     webkit: 0, 
     version: null 

    }; 

    return { 
     engine : engine 
    }; 
}(); 

我的具体问题是关于return语句。我知道:

clientvar engine = { ... }是创建一个对象引擎里面的一些属性和默认值的功能,但我不明白,在它()功能的return和原因。

回答

2

该表达式的变量client被分配给既

  1. 定义它返回一个对象表达式
  2. 调用该函数,并使用该结果作为新值用于client
的函数

更长的写作方式代码是

var method = function(){ 
    var engine = { 

     ie: 0, 
     gecko: 0, 
     webkit: 0, 
     version: null 

    }; 

    return { 
     engine : engine 
    }; 
}; 
var client = method(); 
0

内部函数返回一个关联数组(字典,如果您愿意),其中密钥engine映射到engine变量。冒号前的“引擎”是字典键,并被视为文本而不是变量。它可能会更清楚地看作为

return { 
    "engine" : engine 
}; 

它的工作原理完全相同。

所以,在这段代码运行后,您可以访问client.engine,这将为您带来内置函数中构建的“引擎”。

+0

的对象更确切地说,使用属性键和值。在JavaScript中没有关联数组! – 2011-04-05 02:06:35

+0

感谢您提供的信息,它确实帮助我理解。 – Richard 2011-04-05 14:30:32

0

它创建了一个对象client,看起来像这样:

Object 
    engine: Object 
     gecko: 0 
     ie: 0 
     version: null 
     webkit: 0 

我认为这是书面说明关于JavaScript的一些点,因为它可能是简单的写:

var client = { 
    engine: { 
     ie: 0, 
     gecko: 0, 
     webkit: 0, 
     version: null 
    } 
};