안녕하세요, KeyCodeClass 밖으로 변수를 가져 오지 않습니다. 여기에 내가 tryed 것입니다 : 1ES6의 클래스에서 변수를 가져 오는 방법은 무엇입니까?
class KeyCodeClass1 {
constructor() {
this.space;
}
KeyDown(e) {
if (e.keyCode == 32) { this.space = true }
}
KeyUp(e) {
if (e.keyCode == 32) { this.space = false }
}
}
var KeyCode1 = new KeyCodeClass1();
window.addEventListener("keydown", KeyCode1.KeyDown, false);
window.addEventListener("keyup", KeyCode1.KeyUp, false);
setInterval(loop1,10);
function loop1() {
console.log(KeyCode1.space);
}
가 지금은 정의되지 않은 내 콘솔에서 얻을 TEST. 따라서 스페이스 바를 누를 경우 e.keyCode == 32
과 같은 것은 정의되지 않은 스테이가 인쇄됩니다. 우리가 fuction를의 값을 반환한다면 우리는 이것을 무엇을 얻을 : TEST 그래서 여전히 2
class KeyCodeClass2 {
constructor() {
this.space;
}
KeyDown(e) {
if (e.keyCode == 32) { this.space = true }
}
KeyUp(e) {
if (e.keyCode == 32) { this.space = false }
}
Space() {
return this.space;
}
}
var KeyCode2 = new KeyCodeClass2();
window.addEventListener("keydown", KeyCode2.KeyDown, false);
window.addEventListener("keyup", KeyCode2.KeyUp, false);
setInterval(loop2,10);
function loop2() {
console.log(KeyCode2.Space());
}
콘솔에서 정의되지 않은. 내가 생성자에서 true
또는 false
와 this.space
정의 않은 3 테스트 : TEST 3
constructor() {
this.space = false;
}
그럼 우리는 콘솔에서 false
를 얻을. 그러나 스페이스 바를 누를 때 true
으로 가지 않습니다.
그래서 클래스의 함수가 작동하는지 궁금해하기 시작했습니다. 여기 그들이 잘 작동하는지 증명 : 내가 왜이 일을하고 4
class KeyCodeClass4 {
constructor() {
this.space = false;
}
KeyDown(e) {
if (e.keyCode == 32) {
KeyCodeClass.space = true;
console.log("space Down");
}
}
KeyUp(e) {
if (e.keyCode == 32) {
KeyCodeClass.space = false;
console.log("space Up");
}
}
}
var KeyCode4 = new KeyCodeClass4();
window.addEventListener("keydown", KeyCode4.KeyDown, false);
window.addEventListener("keyup", KeyCode4.KeyUp, false);
TEST? 내 코드를 더 읽기 쉽고 이해하기 쉽게 만드는 것입니다. 이 문제를 도와주세요.
그'this.space을 참고 작동 알려줘,'생성자에서 어떤 조합입니다 (주요 문제에 관련없는.). 'this'에서'space'의 값을 찾아서 그 값을 버립니다. 그것은 "공간"을 인스턴스 속성이나 그 종류의 어떤 것이라도 "선언"하지 않습니다. –
@ T.J.Crowder thx for the feedback 나는 여전히 학생이고 선생님들은 자바 스크립트 전문이 아니며 해결책을 찾기 위해 잘못된 방향을 찾고 있었다. (중복에 대해). 나는 대략 4 주 동안이 문제에 붙어있어. – RensvWalstijn