小编Ale*_*lex的帖子

从es6中的另一个类调用函数

我的问题很简单.基本上,我有一个Controller和一个View类.当我单击一个按钮时,控制器会告诉视图显示一个东西.问题是,控制器不能.这是代码.

class Controller {

    constructor(view) {
        view = new View();
      
        let button = document.getElementById('button');
        button.addEventListener('click', () => {
            controller.doThing();
        });
    }
    
    doThing() {
        view.drawThing(5, 5);
    }

}

class View {
    
    constructor(controller) {
        let canvas = document.getElementById('canvas');
        let pen = canvas.getContext('2d');
        
        this.controller = Controller;
        this.drawThing = drawThing();
    }

    drawThing(x, y) {
        pen.beginPath();
        pen.moveTo(0, 0);
        pen.lineTo(x, y);
        pen.stroke();
    }

}
Run Code Online (Sandbox Code Playgroud)

其结果是

Uncaught TypeError: Cannot read property 'drawThing' of undefined
at Controller.doThing (Controller.js:17)
at HTMLButtonElement.Controller.button.addEventListener (Controller.js:12)
Run Code Online (Sandbox Code Playgroud)

javascript oop model-view-controller class ecmascript-6

1
推荐指数
1
解决办法
2664
查看次数

在类中使es6变量成为全局变量

我想做的是创建一个变量,我可以在类中的不同函数之间使用。但是由于某种原因,每当我let variable在构造函数上方编写代码时,我都会得到'Unexpected token. A constructor, method, accessor, or property was expected.

用var尝试过,我得到的结果差不多

class ClassName {

  let variable;

  constructor() {
    variable = 1;  
  }
  
  function() {
    console.log(variable + 1);  
  }
  
}
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

0
推荐指数
1
解决办法
1288
查看次数