Как исправить ошибку Uncaught ReferenceError: XXX не определено при импорте класса

У меня проблемы с импортом / экспортом классов. Это кажется таким хитрым. Иногда это работает, иногда нет.

Я получаю следующую консольную ошибку: Uncaught ReferenceError: test не определен в main.js:

Я загрузил этот тест онлайн http://tibbotts.epizy.com/testClassImport/index.html < / а>

Я пробовал изменить "./test.js" на "/test.js", "./test" и т. Д.

Я пробовал искать решения в Интернете, но все решения ориентированы на исправление скрипта type = "module" ...

<!DOCTYPE html>

<html>

<head>
    <title>Test Class Importing</title>
    <script type="module" src="main.js"></script>
</head>

<body>
    hello this is a test
</body>

</html>
import Test from "./test.js";

test = new Test();

test.speak();
export default class Test{

    constructor(test){
        this._test = `Test is Successful`;
    }

    speak(){
        console.log(this._test);
    }

}

Я ожидаю, что это приведет к консольному журналу Test is Successful и импорту скрипта, но вместо этого получаю следующее сообщение об ошибке: Uncaught ReferenceError: test не определен в main.js:


person minlopalis    schedule 06.07.2019    source источник


Ответы (1)


Вы можете инициализировать test таким ключевым словом, как var или let:

let test = new Test();

Также не забывайте, что ваша функция-конструктор ожидает аргумент:

let test = new Test("something");
person Jack Bashford    schedule 06.07.2019
comment
Спасибо! Я отошел от клавиатуры на несколько мгновений, а когда вернулся, увидел, что причина смотрит на меня, и отчаянно пытался придумать способ удалить свой вопрос, прежде чем кто-нибудь ответит! Думаю, мне следовало сначала попытаться отойти от клавиатуры! Тем не менее, спасибо за вашу помощь. - person minlopalis; 06.07.2019
comment
Не беспокойся @minlopalis, всегда рад помочь. - person Jack Bashford; 06.07.2019