Javascript 什么意思是返回{someObject:someObject}

Javascript 什么意思是返回{someObject:someObject},javascript,Javascript,我看到了这个代码,在网上找了一段时间后我还是不明白 var client = function (){ var engine = { ie: 0, gecko: 0, webkit: 0, version: null }; return { engine : engine }; }(); 我的具体问题是关于返回声明。我知道: client是

我看到了这个代码,在网上找了一段时间后我还是不明白

var client = function (){  

    var engine = {  

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

    };

    return {  
        engine : engine  
    };  
}();
我的具体问题是关于返回声明。我知道:


client
是一个函数,
var engine={…}
正在创建一个对象引擎,其中包含一些属性和一个默认值,但是我不理解
返回值
,以及为什么在函数的开头它有
()

这个表达式将变量
client
分配给这两个表达式

  • 定义返回对象表达式的函数
  • 调用该函数并将结果用作
    client
  • 编写该代码的一种更冗长的方法是

    var method = function(){  
        var engine = {  
    
            ie: 0,  
            gecko: 0,  
            webkit: 0,  
            version: null  
    
        };
    
        return {  
            engine : engine  
        };  
    };
    var client = method();
    

    内部函数返回一个关联数组(字典,如果您愿意),其中键
    engine
    映射到
    engine
    变量。冒号前的“引擎”是字典键,被视为文本而不是变量。将其视为

    return {  
        "engine" : engine  
    };
    
    它的工作原理相同


    因此,在该代码运行后,您可以访问
    client.engine
    ,这将获得内置于内部函数中的“引擎”。

    它创建一个对象
    client
    ,如下所示:

    Object
        engine: Object
            gecko: 0
            ie: 0
            version: null
            webkit: 0
    
    我认为它是为了说明JavaScript的一些要点而编写的,因为它可以编写得更简单:

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

    更精确地说,对象具有属性键和值。javascript中没有关联数组!