я не могу получить доступ к методам из класса - PullRequest
0 голосов
/ 23 марта 2019

Я не могу получить доступ к методу из класса из 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 ]

2 голосов
/ 23 марта 2019

Вы передаете paddle, затем используете Paddle.paddle в вашем случае это экземпляр Paddle, поэтому вам нужно использовать экземпляр и вызывать метод, а не использовать сам класс.

  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().

0 голосов
/ 23 марта 2019

экспортировать класс по умолчанию InputHandler { Конструктор (лопастной) {

При добавлении весла в конструктор - имейте в виду, что экземпляр InputHandler нужно будет создать с помощью объекта весла:

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

В этом случае вам не нужно импортировать класс Paddle в ваш класс inputHandler.

0 голосов
/ 23 марта 2019

Когда вы говорите Paddle.moveLeft(), вы пытаетесь вызвать статический метод для этого класса.См. Документы здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static

При настройке класса Paddle вам необходимо сначала создать экземпляр класса Paddle, например:

const paddle = new Paddle()

, а затем вызватьметод на экземпляре этого класса

paddle.moveLeft()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...