这是我的作业。这是关于建立“宇宙模型”的,所以没有简单的方法可以将这一作业放在一个句子中。但是,这是一个初学者练习,需要构造函数,方法和对象。


目标:我应该创建一个表示物质和能量守恒的宇宙的表示形式。
基本设置:我应该使用一个名为Universe的对象,其中包含两个对象:物质和能量。 (请注意初学者水平)
要实现的场景/“宇宙”应如何发挥作用:


物质被破坏:宇宙中的能量需要被破坏的物质增加
物质被创造:宇宙中的能量需要减少所创造的物质的量
能量被破坏:宇宙中的物质需要增加被破坏的能量
创造了能量:宇宙中的物质需要减少所创造的能量



4.在构建对象时要遵守此原则:

基本上,物质和能量以负面关系相互影响。
-使用上下文实现此对象
-物质和能量对象在称为“宇宙”的对象中定义
-不应在Universe对象之外定义其他变量
-应该有可能对能量或物质给出初始量,否则应默认为0。

5.应该如何工作的示例:


var universe = new Universe(10, 'matter')
Universe.matter.total // 10
Universe.energy.total // 0

// or with no initial amount
var universe = new Universe()
Universe.matter.total // 0
Universe.energy.total // 0
Universe.matter.destroy(5) // 0
Universe.eatter.total // -5
Universe.energy.total // 5
Universe.energy.destroy(-5) // 0
Universe.matter.total // -10
Universe.energy.total // 10
Universe.energy.create(5) // 0
Universe.matter.total // -15
Universe.energy.total // 15



这是我的代码,遇到语法错误(“ {意外”)


class Universe {

    constructor (amount, matter = 0, energy = 0) {
        this.amount = amount;
        this.matter = matter;
        this.energy = energy
    }

    matter(amount) {
        destroy(amount) {
            this.matter = this.matter - amount;
            this.energy = this.energy + amount;
            return this.amount
        }

        create(amount) {
            this.matter = this.matter + amount;
            this.energy = this.energy - amount;
            return this.amount

        }

        total(amount) {
            return this.amount
        }
    }

    energy (amount) {
        destroy(amount) {
            this.energy = this.energy - amount;
            this.matter = this.matter + amount;
            return this.amount


        }

        create(amount) {
            this.energy = this.energy + amount;
            this.matter = this.matter - amount;
            return this.amount

        }

        total(amount) {
            return this.amount
        }
    }
}


问题是在哪里可以更正代码以使其运行?请尝试坚持我的知识水平(并尽可能提供示例代码)。

最佳答案

Universe类很好,但是如果要使用Matter类型的对象,则还需要创建Matter类。您不能使用自己使用的语法在类本身上定义属性。您需要创建一个单独的类并定义等于该类新实例的属性。

因此,一旦有了Matter类,就可以在Universe类中设置this.matter = new Matter(),以便可以引用universe.matter(假设universe是Universe类的实例,使用类似const universe = new Universe()的方法创建)

09-20 07:49