Obecnie mam plik hero.js
w katalogu i wygląda to tak
let Person = class PersonClass {
constructor(name) {
...
class Hero {
constructor(name, level) {
...
class Mage extends Hero {
constructor(name, level, spell) {
...
Następnie w innym pliku chcę użyć tych klas.
Więc mam:
require("./hero");
const manny = new Hero("Manny", 12);
const george = new Person("George");
I ani george, ani manny nie pracują, obaj rzucają Reference Error: Person/Hero is not defined
.
Kiedy mam kod klasy Person lub Hero w pliku powyżej george and manny, działają one poprawnie.
Chcę wiedzieć, jak przenieść definicje klas do innego pliku i require
je w innym pliku.
0
Rentsy
20 listopad 2019, 22:35
Jakie środowisko: przeglądarka czy coś takiego jak węzeł? W przeglądarce wystarczy upewnić się, że skrypt bohatera znajduje się na stronie przed innym skryptem, a klasy zdefiniowane globalnie lub w jakimś dostępnym zakresie. Nie ma potrzeby.
– Patrick Evans
20 listopad 2019, 22:40
Spróbuj spojrzeć na różne składnie (CommonJS vs ES6) — stackoverflow.com/questions/40294870/…
– muka.gergely
20 listopad 2019, 22:47
1 odpowiedź
To bardzo proste. powinieneś użyć export
let Person = class PersonClass {
constructor(name) {
...
class Hero {
constructor(name, level) {
...
class Mage extends Hero {
constructor(name, level, spell) {
export const Person
export const Hero
export const Mage
W innym pliku
import {Person, Hero, Mage} from './hero'
-1
Giorgi Lagidze
20 listopad 2019, 22:41
Giorgi, próbowałem po prostu odrzucić twoją sugestię i napotkałem problem ``` import {Person, Hero, Mage} from './hero' ^ SyntaxError: Unexpected token { ```
– Rentsy
20 listopad 2019, 23:27