[英]Javascript - How do I have a get/set in a method? (e.g. pineapple.is_a.fruit)
I have an assignment where I'm supposed to make magic out of programming.我有一个任务,我应该从编程中变魔术。 I'm unable to find any answers online, as I do not know the search term for it (tried method in a method etc...).
我无法在网上找到任何答案,因为我不知道它的搜索词(在方法中尝试过方法等......)。 Appreciate any help given!
感谢您提供的任何帮助!
Here's what I got: I need to create a class that builds upon itself.这是我得到的:我需要创建一个基于自身构建的类。 eg
例如
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
I do not even know where to begin.我什至不知道从哪里开始。 My attempt is similar to this, but I'm getting undefined.
我的尝试与此类似,但我变得不确定。
class Thing {
constructor(type) {
this.type = type;
}
is_a(bool) {
this.fruit = this.is_a(bool);
}
}
Assuming that they can be defined in advance, in order to have sub-properties like pineapple.is_a.fruit
, you'll need to define objects on the object's is_a
and is
properties.假设它们可以提前定义,为了拥有像
pineapple.is_a.fruit
这样的子属性,您需要在对象的is_a
和is
属性上定义对象。 For instance (see comments):例如(见评论):
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.