Javascript-如何在方法中获取/设置? 例如pineapple.is_a.fruit

问题描述

我有一个任务,应该在编程中发挥作用。 我无法在线找到任何答案,因为我不知道它的搜索词(方法中尝试过的方法等)。感谢提供的任何帮助!

这就是我得到的: 我需要创建一个基于自身的类。 例如

const pineapple = new Item('pineapple');
pineapple.type = fruit // this is simple

pineapple.is_a.fruit = true // this I do not know
pineapple.is.heavy = true // same thing

我什至不知道从哪里开始。 我的尝试与此类似,但是我不确定。

class Thing {
  constructor(type) {
    this.type = type;
  }
  
  is_a(bool) {
    this.fruit = this.is_a(bool);
  }
}

解决方法

假设可以预先定义它们,以便拥有诸如pineapple.is_a.fruit之类的子属性,则需要在对象的is_ais属性上定义对象。例如(请参阅评论):

class Item { // `Item` rather than `Thing`,right?
    constructor(type) {
        this.type = type;
        // Create an `is_a` property that's an object with a `fruit` property
        this.is_a = {
            fruit: false // Or whatever the initial value should be
        };
        // Create an `is` property that's an object with a `heavy` property
        this.is = {
            heavy: false // Or whatever the initial value should be
        };
    }
}

const pineapple = new Item('pineapple');
pineapple.type = "fruit"; // I added quotes here

console.log("is_a.fruit before:",pineapple.is_a.fruit);
console.log("is.heavy before:",pineapple.is_a.fruit);

pineapple.is_a.fruit = true;
pineapple.is.heavy = true;

console.log("is_a.fruit after: ",pineapple.is_a.fruit);
console.log("is.heavy after: ",pineapple.is_a.fruit);

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...