我无法访问类的方法

时间:2019-03-23 20:35:41

标签: javascript class oop module

我无法从paddel.js访问类中的方法来在input.js文件中使用它。 但我可以访问它的属性

//inputs.js

import Paddle from './paddel.js'

export default class InputHandler{
    constructor(paddle){
        document.addEventListener('keydown' , (event)=>{
           // console.log(event.keyCode)
           switch(event.keyCode){
               case 37 :  console.log(Paddle.moveLeft)                 
           }
        })
    }
}


//paddel.js file

 export default  class Paddle{
    constructor(){
        this.width=150;
     }

    moveLeft(){
        console.log("go left")
    }
}

3 个答案:

答案 0 :(得分:2)

您正在传递paddle,然后使用PaddlepaddlePaddle的实例,因此您需要使用该实例并调用该方法,而不必使用类本身。

  export default class InputHandler{
     constructor(paddle){
         document.addEventListener('keydown' , (event)=>{
               // console.log(event.keyCode)
               switch(event.keyCode){
                   case 37 :  console.log(paddle.moveLeft())                 
               }
            })
        }
    }

 export default  class Paddle{
    constructor(){
        this.width=150;
     }

    moveLeft(){
        console.log("go left")
    }
}
const test = new InputHandler(new Paddle());

也调用像这样的方法moveLeft()

答案 1 :(得分:0)

当您说Paddle.moveLeft()时,您试图在该类上调用 static 方法。在此处查看文档:{​​{3}}

设置Paddle类的方式,首先需要创建Paddle类的实例,例如:

const paddle = new Paddle()

,然后在该类的实例上调用方法

paddle.moveLeft()

答案 2 :(得分:0)

  

导出默认类InputHandler {       构造函数(桨){

将paddle添加到构造函数中时-请注意,InputHandler将需要使用paddle对象进行实例化:

const ih = new InputHandler(new Paddle());

在这种情况下,您不需要在inputHandler类中导入Paddle类。

相关问题