Как экспортировать данные из объекта? - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь экспортировать объект с именем coffeeTree из файла с именем Coffee_Tree. js в файл js с именем coffee. js, чтобы я мог получить данные из объекта. Но я продолжаю получать это:

Uncaught ReferenceError: кофе не определен в Coffee_Tree. js: 2

Это код, который у меня есть до сих пор, я все еще A js новичок, но не могу понять что делать я поменял тип html на модуль, но не вышло. Вот мой код:

Coffee_Tree.js

export default coffeeTree = {
    refill: () => {
        coffee.isEmpty = false;
        console.log('refilled');
    },
    drink: () => {
        coffee.isEmpty = true;
        console.log('chug');
    },
    isEmpty: true,
}

coffee.js

import coffeeTree from './Coffee_Tree.js';

console.log(coffeeTree);

Снова в консоли я продолжаю получать эту ошибку:

Uncaught ReferenceError: coffee is not defined
    at Coffee_Tree.js:2

1 Ответ

0 голосов
/ 26 мая 2020

Вам необходимо

(1) использовать правильное имя переменной (либо coffeeTree, либо coffee - выберите одно, не используйте оба)

(2) Выражение при экспорте по умолчанию не помещается в текущую область в качестве идентификатора. В настоящее время вы неявно создаете глобальную переменную и работаете в небрежном режиме. Одна из основных целей модульной системы - по возможности избегать глобальных переменных. Вместо этого используйте именованный экспорт, чтобы объект мог ссылаться на себя внутри своих методов и без присвоения глобальному объекту:

export const coffee = {
    refill: () => {
        coffee.isEmpty = false;
        console.log('refilled');
    },
    drink: () => {
        coffee.isEmpty = true;
        console.log('chug');
    },
    isEmpty: true,
};
import { coffee } from './Coffee_Tree.js';
console.log(coffee);

(я также настоятельно рекомендую использовать строгий режим, если это вообще возможно - если вы прочитаете сообщения об ошибках и попытаетесь их отладить, это поможет вам избежать подобных ошибок)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...