如何创build用户定义的types(ala C#)在JavaScript中的对象中使用?

在C#中,我可以创build一个充当用户定义types的类,例如:

Public Class FullName { string FirstName; string LastName; } Public Class Address { string Line1; string Line2; string City; string State; string Zip; } 

然后我可以创build:

 Public Class Person { FullName Name; Address HomeAddress; Address WorkAddress; } 

这使我可以像这样引用数据:

 Person Bob; Bob.WorkAddress.Line1 = "123 Sycamore Rd"; Bob.HomeAddress.Line1 = "1313 MockingBird Ln"; Bob.FullName.LastName = "Smith"; etc... 

最终,我想创build一个Person的二维数组,所以我不想硬编码(预先填充?)数据,直到我知道它是什么。

我希望能够在JavaScript(特别是node.js)中做同样的事情,但似乎无法find一个明显的方式。 这只是从根本上来说是错误的方法,还是我错过了什么?

在Javascript中,您可以直接创build数据对象(无类):

 var bob = { workAddress: { line1: "123 Sycamore" }, fullName: { lastName: "Smith" } }; 

也可以创build一个类,但通常不需要单纯的数据对象。

最终,我想创build一个Person的二维数组,所以我不想硬编码(预先填充?)数据,直到我知道它是什么。

您可以创build一个数组,然后添加人员:

 var persons = []; ... persons.push(bob); 

对于二维数组,创build一个包含人物数组的数组:

 var persons2D = []; ... persons2D.push(persons); 

JavaScript对象及其符号的一个很好的例子是JSON.org

这是一个有2个string属性的对象,以及一个数组的第三个属性。 有一点区别是,因为JavaScript没有强types,“居民”属性可能只是一个简单的string或数组。 所以在parsing时必须小心,因为任何属性都可以是string或其他数组。

 var household = { address: "1234 N 56th st" , city: "somewhere" , residents: [ { Name: "My Name" } , { Name: "My Alias" } ] }; 

现在,根据您如何获取数据,您可以使用C#中的JavaScript或JSON(de)序列化方法来填充。