Guest User

Untitled

a guest
Feb 18th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. class Player {
  2. board: Board = new Board();
  3. pice: Pice = new Pice();
  4.  
  5. constructor() {
  6. this.addKeyEvents();
  7. }
  8.  
  9. addKeyEvents(): void {
  10. document.addEventListener("keydown", this.keyClick);
  11. }
  12.  
  13. removeKeyEvents(): void {
  14. document.removeEventListener("keydown", this.keyClick);
  15. }
  16.  
  17. keyClick(event: KeyboardEvent): void {
  18. console.log(this); // #document
  19.  
  20. switch (event.keyCode) {
  21.  
  22. // Left
  23. case 37:
  24. this.pice.move(-1, 0, this.board);
  25. break;
  26. }
  27.  
  28. }
  29.  
  30. }
  31.  
  32. // Binding way.
  33. class Player {
  34. constructor() {
  35. this.addKeyEvents();
  36. // Bind the function to `this` context.
  37. this.keyClick = this.keyClick.bind(this)
  38. }
  39.  
  40. addKeyEvents(): void {
  41. document.addEventListener("keydown", this.keyClick);
  42. }
  43.  
  44. keyClick(event: KeyboardEvent): void { /* ... */ }
  45. }
  46.  
  47. // Arrow function way.
  48. class Player {
  49. constructor() {
  50. this.addKeyEvents();
  51. }
  52.  
  53. addKeyEvents(): void {
  54. // Create an intermediary arrow function that will keep the context.
  55. document.addEventListener("keydown", event => this.keyClick(event));
  56. }
  57.  
  58. keyClick(event: KeyboardEvent): void { /* ... */ }
  59. }
Add Comment
Please, Sign In to add comment