实际上是JS的新手,并且正在学习Objects。
基本上,我想知道如何使用构造方法创建嵌套对象。我的情况是我有Day构造函数,该构造函数具有name属性,也有一个activity属性。我希望活动属性也可以是一个具有自己属性的对象。我将如何在构造函数中定义它?
也可以使用构造函数的方法来想象我在星期一有活动,但在星期二无活动。正确的方法是说我在星期二对象无活动?
谢谢
答案 0 :(得分:0)
首先,最简单的方法是不必担心类,而只创建普通对象。
const days = [
{
name: 'monday',
activities: [
{
name: 'Answer questions on stack overflow.'
}
]
},
{
name: 'tuesday',
activities: []
}
]
但是,由于这是问题的一部分,因此假设“构造函数”方法意味着要使用类,则只需创建Day和Activity类并实质上构造相同的数据结构。
最简单的方法是使用babel或typescript并向下转换为ES5兼容代码。因此,es7,通天塔代码,看起来像这样:
class Day {
constructor(name, activities) {
this.name = name
this.activities = activities
}
}
class Activity {
constructor(name) {
this.name = name
}
}
const days = [
new Day("monday", [new Activity("Answer questions on stack overflow.")])
new Day("tuesday", [])
]
在不使用class
语法的情况下使用较旧的javascript编写类会变得非常复杂,但是在这种情况下,它就像声明以下函数一样简单:
function Day(name, activities) {
this.name = name;
this.activities = activities;
}
function Activity(name) {
this.name = name
}
var days = [
new Day("monday", [new Activity("Answer questions on stack overflow.")])
new Day("tuesday", [])
]