使用构造函数方法的对象内的Javascript对象

时间:2018-12-04 01:53:59

标签: javascript

实际上是JS的新手,并且正在学习Objects。

基本上,我想知道如何使用构造方法创建嵌套对象。我的情况是我有Day构造函数,该构造函数具有name属性,也有一个activity属性。我希望活动属性也可以是一个具有自己属性的对象。我将如何在构造函数中定义它?

也可以使用构造函数的方法来想象我在星期一有活动,但在星期二无活动。正确的方法是说我在星期二对象无活动?

谢谢

1 个答案:

答案 0 :(得分:0)

首先,最简单的方法是不必担心类,而只创建普通对象。

const days = [
  {
    name: 'monday',
    activities: [
      {
        name: 'Answer questions on stack overflow.'
      }
    ]
  },
  {
    name: 'tuesday',
    activities: []
  }
]

但是,由于这是问题的一部分,因此假设“构造函数”方法意味着要使用类,则只需创建Day和Activity类并实质上构造相同的数据结构。

最简单的方法是使用babeltypescript并向下转换为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", [])
]