我无法从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")
}
}
答案 0 :(得分:2)
您正在传递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()
。
答案 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类。