javascript - 如何在类方法中将类属性作为参数传递,然后用 Javascript 控制台记录输出?
问题描述
所以我是编程新手,就在几天前,我离开结构化范式冒险进入 OOP,因为我对制作游戏很感兴趣,(我选择 JS,因为我的兄弟,一个真正的网络/游戏开发人员编写了他的引擎在上面,我想和他一起做游戏,而且JS很棒!)现在我开始想做一个小的“太阳能系统创造者”来练习,我从一开始就遇到了问题......
好的,对于这个问题,我从“太阳课”开始。我希望它的属性,如“质量”、“颜色”、“重力”等,只需输入星型即可自动设置,例如:
如果我创建一个 M 型恒星(通常是红矮星),我希望它的颜色自动设置为红色(最好是列表中的随机颜色,但我必须从某个地方开始)
现在,代码:
class Star{
constructor(props = {}){
this.starType = props.starType || "M Type"
this.starColor = props.starColor || "No color"
this.starSize = props.starSuze || 0
this.starHabitablePlanetChance = props.starHabitablePlanetChance + "%" || 0 + "%"
}
set_star_color(starType){
starType = this.starType
switch (starType) {
case starType = "M Type" :
this.starColor = "Red"
break;
default:
"No color"
break;
}
}
}
let sun = new Star({
starType : "M type"
})
console.log(sun.set_star_color())
我的逻辑(顺便说一句很糟糕)告诉我,我必须询问“sunType”作为参数,以便稍后将其切换为颜色(其余属性相同,但方法不同,或者一种赋予星星特征的大方法)
终端输出:PS D:\VS Code\JS\Solar System> node main.js undefined
我知道这意味着什么,但我正在努力解决它。
谢谢,我知道我问的太多了,但是如果它可以是 ELI5 格式的答案,那将有很大帮助。
解决方案
您正在尝试记录 的返回值,sun.set_star_color()
但您没有在该函数中返回任何内容,这就是您得到undefined
. (默认情况下,如果没有提供函数的返回值)
在程序结束时,通过调用sun.set_star_color()
然后 console.log 你的星来设置星的颜色console.log(sun)
。
推荐阅读
- scala - Scala - 如何将 EitherT 与 Either 结合起来以供理解
- azure - 如何让 Azure 上的 CRA 正确运行 serviceWorker 缓存?
- netlogo - 是否有与 Netlogo 等效的 python 解包或 bash 的间接参数扩展?
- solr - SOLR 7.2 备份和恢复
- r - R应用()格式_日期
- android - React-Native 按钮在 Android 上的格式不正确
- java - 从 Firebase 数据库中获取项目/子项列表?
- sql - Access SQL:计算两行之间的百分比变化
- sql-server - Bitbucket 和数据库开发
- list - Prolog列表和递归查找图路径