bindDom is not a function

0

witam otóż mam problem i nie wiem jak go naprawić.

class bindDom {
	constructor(){
		
	}
}

class Map {
	constructor(){
		this.name = {},
		this.max_x = 0,
		this.max_y = 0,
		this.collision = {},
		this.img = {}
	}
}

game = new class Game {
	constructor(){
		this.map = new Map();
		
		this.bindDom = new bindDom();
	}
	
	functions(){
		this.loadMap = loadMap;
	}
	
	start(){
		this.functions();
		
		this.bindDom().start;
	}
}
2

bindDom nie jest funkcją tylko klasą, poza tym nie wiadomo co startujesz skoro nie ma takiej metody w klasie i jak już, to this.bindDom.start();

2
game = new class Game {

Dlaczego przed game nie ma const, let albo var? Powinno być. BTW dodaj sobie na początku pliku

"use strict";

to ci będzie wyłapywać takie rzeczy.

class Map {

nazwa Map byłaby dobra, gdyby nie to, że Map już istnieje w JavaScript:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map
więc teraz jest to mylące. Jak widzę new Map(); to od razu mam przed sobą obiekty Map z ES6, a nie jakieś customowe.

bindDom is not a function
...
this.bindDom().start;

No popatrz, bindDom nie jest funkcją. To to, co teraz powinieneś zrobić, to console.log (ew. debuggera jak niektórzy lubią) i
dowiedzieć się, czym jest bindDom:

  start(){
     console.log(bindDom);
}

0
LukeJL napisał(a):
game = new class Game {

Dlaczego przed game nie ma const, let albo var? Powinno być. BTW dodaj sobie na początku pliku

"use strict";

to ci będzie wyłapywać takie rzeczy.

class Map {

nazwa Map byłaby dobra, gdyby nie to, że Map już istnieje w JavaScript:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map
więc teraz jest to mylące. Jak widzę new Map(); to od razu mam przed sobą obiekty Map z ES6, a nie jakieś customowe.

bindDom is not a function
...
this.bindDom().start;

No popatrz, bindDom nie jest funkcją. To to, co teraz powinieneś zrobić, to console.log (ew. debuggera jak niektórzy lubią) i
dowiedzieć się, czym jest bindDom:

  start(){
     console.log(bindDom);
}

wiem ze jest klasa, ale jak naprawić powyższy błąd?
nic mi do glowy nie przychodzi

0

wiem ze jest klasa, ale jak naprawić powyższy błąd?

Pomyliłem się w poprzednim poście, miałem na myśli, żebyś sprawdził czym jest this.bindDom (a nie bindDom), zresztą widzę, że post wcześniej już użytkownik @.__. napisał to, co chciałem przekazać, czyli że to powinno być this.bindDom.start() (w złym miejscu nawias).

Poza tym ten kod jest niepełny, nie odpala się w tej postaci, w której wrzuciłeś (loadMap nie wiadomo skąd się wzięło).

Swoją drogą nazwy klas zwyczajowo się pisze wielką literą, więc klasa bindDom bardziej elegancko powinno się nazywać BindDom, wtedy od razu widać po konwencji nazewniczej, że coś jest (a raczej ma być) klasą.

1 użytkowników online, w tym zalogowanych: 0, gości: 1