Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2019, 05:22   #1
pavel1c
 
Регистрация: 09.01.2019
Сообщений: 5
По умолчанию Использование import и export в JS

Добрый день. Столкнулся с проблемой... ситуация следующая:
Есть кусок кода, который рисует квадрат на Canvas:
Код:
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');

class Rect{
    constructor(width, height, ctx){
        this.width = width ;
        this.height = height;
        this.ctx = ctx;
    }
    draw() {
        this.ctx.fillStyle = '#FFFAFA';
        this.ctx.fillRect(5, 5, this.width, this.height);
    }
}
var rect = new Rect(530, 300, ctx);
rect.draw();
все работает норм, квадрат рисует...

Теперь я хочу перенести класс Rect в отдельный файл, таким образом:

файл 1 (script.js)
Код:
import Rect from './rect';

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');

var rect = new Rect(530, 300, ctx);

rect.draw();
и файл 2 (rect.js)

Код:
class Rect{
    constructor(width, height, ctx){
        this.width = width ;
        this.height = height;
        this.ctx = ctx;
    }

    draw() {
        this.ctx.fillStyle = '#FFFAFA';
        this.ctx.fillRect(5, 5, this.width, this.height);
    }
}

export default Rect;
в этом случае не работает, и пишет такую ошибку:
Uncaught SyntaxError: Unexpected identifier

Я так понял, проблема с областью видимости, но не понятно как ее решить, и как нагуглить решение подскажите пожалуйста в какую сторону капать
pavel1c вне форума Ответить с цитированием
Старый 13.01.2019, 10:28   #2
pavel1c
 
Регистрация: 09.01.2019
Сообщений: 5
По умолчанию

на самом деле у меня вообще не работает этот impore и export,
файл 1
Код:
import {one} from './rect';
console.log(one);
файл 2 (rect.js)
Код:
export let one = 1;
Подскажите как заставить браузер понимать этот механизм?
pavel1c вне форума Ответить с цитированием
Старый 13.01.2019, 14:38   #3
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Браузеры не умеют в импорт/экспорт, только серверный JS.
Для браузера надо сделать сборку проекта (babel, webpack, etc) и грузить склеенный файл JS.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 13.01.2019, 17:18   #4
pavel1c
 
Регистрация: 09.01.2019
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
Браузеры не умеют в импорт/экспорт, только серверный JS.
Для браузера надо сделать сборку проекта (babel, webpack, etc) и грузить склеенный файл JS.
Спасибо. Да уже понял что в эту сторону нужно капать... Просто недавно начал изучать JS и тут такое... не ожидал просто, что стока нюансов
pavel1c вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись данных в файл и чтение, без использование import. Yasuro Общие вопросы по Java, Java SE, Kotlin 2 22.09.2016 17:52
import table и import address table goluzov Общие вопросы C/C++ 0 07.03.2012 14:33
export С++ Builder VintProg Общие вопросы C/C++ 0 08.09.2011 14:24
Extern/export Red_Line Общие вопросы C/C++ 1 02.09.2011 13:50
XML export cheshir55 Microsoft Office Excel 0 18.11.2009 22:24