2017-10-02 14 views
1

특히 Google Chrome의 최신 버전에서이를 테스트하고 있지만 이것이 Edge/Firefox/Safari에서 동일하다고 의심됩니다 (마지막으로 Edge Firefox에는 실험용 자바 스크립트 플래그에 숨겨진 모듈이 있습니다.)Javascript - 브라우저의 다른 모듈에서 'let'변수를 설정하십시오.

'globals.js'에는 저울이 있습니다. 다른 모듈에서

// inside global.js 
let scale = 1; 

, 나는 규모

// inside another js file 
import { scale } from "../JS/globals.js"; 
scale = Math.min(scale + ((scale + delta) * speed), target); 

를 조정하고 싶어하지만 "상수 변수에 할당"오류를 얻고있다.

내가이 작업을 수행하는 하나의 확실한 방법을 상상

// back in globals.js 
export function set_scale (value) { scale = value }; 

set_scale라는 함수를 내보내는 것입니다 그리고 난 이미 globals.js에서 몇 가지 다른 변수에 대해이 작업을 수행했다. 하지만 다른 사람들이 수출/수입을 극복하기위한 다른 방법을 가지고 있는지 알고 싶었습니다. 특히 수출/수입 할 물건을 더 많이 만들지 않아도됩니다.

export default {scale: 1} 

을 다른 모듈에서, 다음과 같이 사용 :

+0

. node.js (common.js)로이 작업을 수행했다면 global.js 내부에'module.exports = {scale : 1}; '이 생깁니다. 그럼 내가 바꾸고 싶다면 .. const g = require ("./ globals"); g.scale = ...' – Keith

+0

크롬을 함유하고 있습니다. 그들은 최근에 실제 브라우저에서 내보내기 + 가져 오기를 활성화했습니다. 파이어 폭스 또는 가장자리에서 작동하는지 처음에는 알 수 없지만 사파리는 이미이를 구현했으며 다른 브라우저는 실험용 플래그 뒤에 숨어있는 모듈을 최근에 숨겨 뒀습니다. 카나리아 브라우저이지만 현재 최신 버전에서 사용할 수 있습니다. 죄송합니다.이 점을 잊어 버렸습니다.이 질문을 브라우저에 대한 질문으로 수정하겠습니다. – BetaRuler

+0

common.js 대신 새로운 ES6 구문을 사용하여 동일하게 수행 할 수 있어야합니다. 또한 ->'scale ='당신은 그것을 할 수 없습니다. 그것은'scale'을 얻었습니까? 당신은 아마도'global.scale'을 원했을 것입니다. – Keith

답변

0

당신은 당신의 globals.js 파일에 다음과 같이 할 수있는 당신이 사용하는 어떤 모듈 로더

import global from "global" 

global.scale = ... 
... = global.scale