-
ES6의 스코프Web Dev/1. JS 문법 관련 2021. 5. 20. 21:02728x90
https://stackoverflow.com/questions/30287977/es6-module-scope
ES6 module scope
I have the code: // lib.js var a = "a"; export var b = "b"; // main.js console.log(a); // "a" variable is not available in a global scope import {b} from "lib"; console.log(a); // is "a" variable
stackoverflow.com
ES6의 스코프에 대해서간략한 정리
기존에는 var 키워드를 사용하면 전역에 등록되고 그랬는데, 이제는 ES6 모듈내에서는 var키워드를 사용한다고 해도 모듈 스코프에 등록된다. 하지만 var는 애초에 쓸생각을 하지말자.
- Global scope
- Module scope
- Function scope
- Block scope
스코프는 위와 같이 있다.
A.js에서
let obj = { state: "value", setState(newState) { console.log("newState", newState) this.state = newState; }, getState() { console.log(this.state); } } export default obj;
이런식으로 object가 있을때 여러 모듈에서 obj를 import해서 쓸경우가 생겼는데, 갑자기 이해가 안된적이 있었다.
// B.js import { obj } from "./A.js" obj.setState("B에서 바꿉니다"); // C.js import { obj } from "./A.js" obj.setState("C에서 바꿉니다");
이렇게 여러 파일에서 A모듈에 접근하면 최초에 번들에 포함될때 A.js 가 평가가 되고, 그다음엔 동일한 인스턴스를 사용한다.
아래 글에 메모해놓은 곳에서 설명이 잘 되어있다.
https://mytutorials.tistory.com/378
Modules
내가 내용을 따로 정리할건 없는데, 매번 https://javascript.info/modules-intro Modules, introduction javascript.info 이글을 보고있다. 그런데 돌아서면 까먹고 까먹고 그렇군. 여하튼 요지는 require등등의..
mytutorials.tistory.com
'Web Dev > 1. JS 문법 관련' 카테고리의 다른 글
Generator와 비동기처리 (0) 2021.06.02 Object.assign() - 열거가능한 모든 프로퍼티 복사 (0) 2021.05.21 Modules (0) 2021.05.19 블록 스코프와 지역스코프 (0) 2021.03.28 Spread vs Rest (0) 2021.03.16