Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 13.01.2019, 06:22   #1
pavel1c
 
Регистрация: 09.01.2019
Сообщений: 5
Репутация: 10
По умолчанию Использование 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, 11:28   #2
pavel1c
 
Регистрация: 09.01.2019
Сообщений: 5
Репутация: 10
По умолчанию

на самом деле у меня вообще не работает этот impore и export,
файл 1
Код:

import {one} from './rect';
console.log(one);

файл 2 (rect.js)
Код:

export let one = 1;

Подскажите как заставить браузер понимать этот механизм?
pavel1c вне форума   Ответить с цитированием
Старый 13.01.2019, 15:38   #3
Naive
Раздолбайских Дел
Профессионал
 
Аватар для Naive
 
Регистрация: 22.05.2009
Адрес: Екатеринбург
Сообщений: 3,761
Репутация: 2322
По умолчанию

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись данных в файл и чтение, без использование import. Yasuro Общие вопросы по Java, Java SE, Kotlin 2 22.09.2016 18: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 23:24


05:36.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru