类值返回未定义,因为值有可能改变
Posted
技术标签:
【中文标题】类值返回未定义,因为值有可能改变【英文标题】:Class value returns undefined because value has potential to change 【发布时间】:2021-08-30 23:01:30 【问题描述】:我想根据函数的输出定义 xNotEqualZero。 该函数将在对象上使用更改方法之前和之后返回相同的输出。无论您调用多少次更改功能。 这是代码外观的示例-
class object
constructor(x)
this.x = x;
this.xNotEqualZero = isXEqualZero(this.x);
;
change()
if (this.x > 0)
this.x += 1;
else if (this.x < 0)
this.x -= 1;
;
;
;
let objectOne = new object(3);
function isXEqualZero(x)
if (x == 0)
return true;
else
return false;
;
;
//this code is ran every frame
objectOne.change();
//console.log is just the easist way to show the value
console.log(objectOne.xNotEqualZero);
上面的代码返回 undefined 而不是预期的 true。 我试图在构造函数之外使用 static 关键字。像这样-
constructor(x)
this.x = x;
;
static xNotEqualZero = isXEqualZero(this.x);
这会返回一个类型错误。
【问题讨论】:
【参考方案1】:-
命名一个类
object
或任何其他JS 类型如string
或number
不是一个好主意。使其更具体,例如 Counter
或类似内容
当我运行你的代码时,我得到false
作为输出
这一行应该是this.xNotEqualZero = !isXEqualZero(this.x);
【讨论】:
谢谢,我发现问题出在我用来定义 xNotEqualZero 值的函数内部。以上是关于类值返回未定义,因为值有可能改变的主要内容,如果未能解决你的问题,请参考以下文章