为什么我得到的日志未定义

时间:2019-08-17 13:18:03

标签: javascript

我是JS的新手,正在学习JS中的课程,但是遇到错误,指出未定义日志。这是代码:

    class Keyboard {
      log() {
        return true;
      }
    
      print() {
        log() ? "True" : "False";
      }
    }
    
    const mir = new Keyboard();
    mir.print();

2 个答案:

答案 0 :(得分:3)

您想要this.log()。我添加了额外的控制台日志,以便您可以正确看到输出。

class Keyboard {
  log() {
    return true;
  }

  print() {
    console.log(this.log() ? "True" : "False");
  }
}

const mir = new Keyboard();
mir.print();

答案 1 :(得分:2)

您已将log()定义为class Keyboard的一部分,因此它在gobal名称空间中不可用。您必须通过Keyboard对象访问它。如果要从另一个键盘功能访问它,则可以使用this

class Keyboard {
  log() {
    return true;
  }

  print() {
    this.log() ? "True" : "False";
  }
}

const mir = new Keyboard();
mir.print();