index.js에서 calculate이라는 패키지를 불러와 사용하고 싶다고 생각해 봅시다.
calculate 패키지 안에는 calculate.js라는 파일이 다음과 같이 있습니다.
// calculate.js
function add(a, b) {
return a + b;
}
function subtract(a, b) {
return a - b;
}
function divide(a, b) {
return a - b;
}
function multiply(a, b) {
return a + b;
}
exports.add = add;
exprots.subtract = subtract;
exports.divide = divide;
exports.multiply = multiply;
calculate.js 안에는 add
. subtract
, divide
, multiply
라는 함수가 있고 calculate.js 밖에서도 사용할 수 있도록 모두 exports
객체에 담아주고 있습니다. 이렇게 export된 함수들을 불러와 사용하려면 require
를 사용해 주어야 합니다.
// index.js
const calc = require('calculate');
변수 calc
에 calculate.js에서 export해 주었던 모든 함수들이 담겨 있습니다. 이를 사용하려면 아래와 같이 할 수 있습니다.
// 22에 11을 더한 값 구하기
calc.add(22, 11);
// 22에서 11을 뺀 값 구하기
calc.subtract(22, 11);
// 22를 11로 나눈 값 구하기
calc.divide(22, 11);
// 22에 11을 곱한 값 구하기
calc.multiply(22, 11);
그런데 만약 4가지 함수 모두가 아닌 add
함수 만 필요하다면 어떻게 할 까요? 그럴 경우 객체 Destructuring을 사용해 add
함수만 불러 올 수 있습니다. (구조분해할당(Destructuring)).
const { add } = require('calculate');
// calculate에서 제공하는 add, subtract, divide, multiply 함수 중 add 함수만 가져와 사용한다.
// 22에 11을 더한 값 구하기
console.log(add(22, 11));
여기서 가져와 사용할 add
함수의 이름을 바꿔 줄 수도 있습니다. 만약 index.js에서 add
함수를 add라는 이름이 아닌 sum이라는 이름으로 사용하고 싶다면 아래와 같이 하면 됩니다.
const { add: sum } = require('calculate'); // calculate패키지에서 exports한 모든 함수/객체 중 add 함수를 sum이라는 이름의 변수에 할당한다.
// 22에 11을 더한 값 구하기
console.log(sum(22, 11));
range라는 패키지가 있습니다. 패키지 사용법을 보면 0이상 10미만의 수를 담은 배열을 만들고 싶다면 다음과 같이 하라고 나옵니다.
const range = require('range'); // range패키지에서 exports한 모든 함수/객체를 range변수에 할당. 현재 range패키지에서 exports하는 함수는 range 하나 뿐임.
range.range(0, 10);
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range.range()
는 range
변수에 담긴 range
함수를 사용하겠다는 말입니다. range 패키지 에서 제공하는 함수는 range
하나 뿐입니다. 이를 사용할 때마다 range.range()
이렇게 두번 쓰는 건 조금 귀찮죠. 이럴 때 Destructring을 사용해 다음과 같이 쓸 수 있습니다.
const { range } = require('range');
range(0, 10);
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
너무 잘 배우고 갑니다~ 34기요!