네임 스페이스
네임 스페이스란 말 그대로 이름을 쓸 수 있는 공간?정도로 해석된다
작업중인 프로젝트에서 현재 내가 쓰는 변수나 함수의 이름과
다른 사람, 혹은 먼 미래에의 내가 코드 작업을 할 때의 이름들이 겹치게되는 불상사가 일어나는 상황을 방지하기 위해 만드는 공간이라고 보면 된다
var A = {}
A.introduce =function (){
console.log('mynameisA');
}
var B = {}
B.introduce = function (){
console.log('mynameisB');
}
A.introduce();// mynameisA
B.introduce();// mynameisB
자바스크립트에서는 이렇게 빈 객체를 생성한 뒤에 그 공간 안에 변수와 함수를 선언해서 사용한다
문제점
위 처럼 네임스페이스를 구현해서 다른 공간들과의 변수명이 충돌하는 일은 없어졌지만
같은 공간안에서 벌어질 수 있는 참사는 아직 존재한다
var A = {};
A.name = 'A';
A.introduce =function (){
console.log(`mynameisA`);
}
A.introduce = function (){
console.log(`My name is ${name}`);
}
이런식으로 네임 스페이스 안에서 얼마든지 덮어씌우기가 가능하고 같은 이름으로 네임스페이스를 만들어버릴 수도 있기 때문
if(typeof A ==="undefined") {
var A = {};
}
와 같이 선언하면 위의 문제 또한 해결할 수 있다
A가 생성된 적이 없는 공간이면 네임스페이스 A를 생성하는 것
네임 스페이스 패턴
이러한 위의 과정들을 모두 생략하고 간략하게 네임스페이스를 생성하는 코드
var A = A ||{};
'JavaScript' 카테고리의 다른 글
slice() vs substring() (0) | 2020.12.03 |
---|---|
API 사용하기 (0) | 2020.11.22 |
Number() vs parseInt() (0) | 2020.11.16 |
form event (0) | 2020.11.12 |
Ajax (0) | 2020.11.08 |