我的问题很简单.基本上,我有一个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) 我想做的是创建一个变量,我可以在类中的不同函数之间使用。但是由于某种原因,每当我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)