Javascript 定义Resources.JS

Javascript 定义Resources.JS,javascript,Javascript,这是我正在处理的一个资源文件。这是一个正常工作,但最终汽车,公共汽车和飞机将在多个变量中使用 TRANSPORT = { name : 'Transport', size : 3, CAR : { titles : ['Small Car'],

这是我正在处理的一个资源文件。这是一个正常工作,但最终汽车,公共汽车和飞机将在多个变量中使用

TRANSPORT =
    {
        name        :   'Transport',
        size        :   3,        
        CAR         :
                    {
                        titles      :   ['Small Car'],        
                        coValues    :   [0.1751],
                        size        :   1
                    },
        BUS         :
                    {
                        titles      :   ['Regular'],        
                        coValues    :   [0.2751],
                        size        :   1  
                    },

        AIRPLANE    :
                    {
                        titles      :   ['Boeing'],        
                        coValues    :   [1.11],
                        size        :   1
                    }   
    };
如果我有这个.js

CAR :
     {
          titles        :   ['Small Car'],        
          coValues  :   [0.1751],
          size      :   1
     },    
TRANSPORT =
        {
            name        :   'Transport',
            size        :   3,                     

            BUS         :
                        {
                            titles      :   ['Regular'],        
                            coValues    :   [0.2751],
                            size        :   1  
                        },

            AIRPLANE    :
                        {
                            titles      :   ['Boeing'],        
                            coValues    :   [1.11],
                            size        :   1
                        }   
        };
如何在运输对象中包含单个汽车对象。我真的不知道该怎么称呼它


另外,我如何将CAR对象设置为私有对象,以便无法在此文件之外直接访问它?

您可以通过以下方式将一个对象包含为另一个对象的成员:

TRANSPORT.CAR = {...};

运行代码时,传输对象已获得另一个引用另一个对象的密钥(汽车)

但我建议您定义一个函数,为您创建一个对象,因为汽车、公共汽车和飞机的结构相似,并且具有相同的键名:

function createTransportObject(title,value,size){
   return {
      titles : title,        
      coValues  : value,
      size : size
   };

}
然后你可以这样做:

var TRANSPORT = {};
TRANSPORT.name = 'Transport';
TRANSPORT.size = 3;

TRANSPORT.CAR = createTransportObject('car',[0.1751],1);
TRANSPORT.BUS = createTransportObject(...);
TRANSPORT['AIRPLANE'] = createTransportObject(...);

我希望这能对您有所帮助。

我不明白要绕过这个问题需要使用的键名和函数?另外,它是一个引用/常量资源,所以我不需要为这些设置构造函数,我想我不需要。我实际上定义了一个函数,这样你就不必一遍遍地手动编写构建相似的对象。当你调用createTransportObject时,它会返回一个对象的引用,就像你手动定义它一样,因为一个对象是一个对象,它是作为引用传递或返回的:按引用调用(c++)。我有点傻,一开始没看到你做了什么:谢谢你给我看构造函数XD
var TRANSPORT = {};
TRANSPORT.name = 'Transport';
TRANSPORT.size = 3;

TRANSPORT.CAR = createTransportObject('car',[0.1751],1);
TRANSPORT.BUS = createTransportObject(...);
TRANSPORT['AIRPLANE'] = createTransportObject(...);