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

时间:2011-04-04 23:52:24

标签: javascript

我看了这段代码,经过一段时间的寻找并在互联网上寻找我仍然没有得到它。

var client = function (){  

    var engine = {  

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

    };

    return {  
        engine : engine  
    };  
}();

我的具体问题是关于退货声明。我知道:

clientvar engine = { ... }正在创建一个对象引擎的函数,其中包含一些属性和默认值,但我不理解return以及为什么在函数中它有()

3 个答案:

答案 0 :(得分:2)

此变量client所指定的表达式都是

  1. 定义返回对象表达式的函数
  2. 调用该函数并将结果用作client
  3. 的新值

    编写代码的方法更为冗长

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

答案 1 :(得分:0)

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

可能更清楚
return {  
    "engine" : engine  
};

的作用相同。

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

答案 2 :(得分: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
     }
};