类值返回未定义,因为值有可能改变

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 类型如stringnumber 不是一个好主意。使其更具体,例如 Counter 或类似内容 当我运行你的代码时,我得到false 作为输出 这一行应该是this.xNotEqualZero = !isXEqualZero(this.x);

【讨论】:

谢谢,我发现问题出在我用来定义 xNotEqualZero 值的函数内部。

以上是关于类值返回未定义,因为值有可能改变的主要内容,如果未能解决你的问题,请参考以下文章

使用“WebMethod”调用 C# 方法返回“未定义”

如何在 Delphi 中禁用关于“返回值......可能未定义”的警告?

在setState之后反应状态未定义? [复制]

操作可能没有未定义的“类型”属性。反应?

jni报错日志打印方法未定义

IE中未定义的outerHTML