使用构造函数方法在对象中创建Javascript对象

使用构造函数方法在对象中创建Javascript对象,javascript,Javascript,我是JS的新手,我正在学习对象 基本上,我想知道如何使用构造函数方法创建嵌套对象。我的场景是,我有一个Day构造函数,它有一个name属性,我还有一个activities属性。我希望活动属性也是一个具有自己属性的对象。我如何在构造函数中定义它 同样,使用构造函数方法,假设我在星期一有一个活动,但在星期二没有活动,那么正确的方式是如何声明我在星期二对象上没有活动 首先,最简单的方法是不用担心类,只创建普通对象 const days = [ { name: 'monday', a

我是JS的新手,我正在学习对象

基本上,我想知道如何使用构造函数方法创建嵌套对象。我的场景是,我有一个Day构造函数,它有一个name属性,我还有一个activities属性。我希望活动属性也是一个具有自己属性的对象。我如何在构造函数中定义它

同样,使用构造函数方法,假设我在星期一有一个活动,但在星期二没有活动,那么正确的方式是如何声明我在星期二对象上没有活动


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

const days = [
  {
    name: 'monday',
    activities: [
      {
        name: 'Answer questions on stack overflow.'
      }
    ]
  },
  {
    name: 'tuesday',
    activities: []
  }
]
但是,由于这是问题的一部分,假设构造函数方法意味着使用类,您只需创建Day和Activity类,并基本上构造相同的数据结构

做到这一点最简单的方法是使用或并向下传输到与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", [])
]
在旧的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", [])
]

你所说的构造函数方法是什么意思?我的意思是使用构造函数函数定义对象:函数Personfirst,last,age,eye{this.firstName=first;this.lastName=last;this.age=age;this.eyeColor=eye;}