본문으로 바로가기

name space

category JavaScript 2020. 11. 19. 15:53

네임 스페이스

네임 스페이스란 말 그대로 이름을 쓸 수 있는 공간?정도로 해석된다

작업중인 프로젝트에서 현재 내가 쓰는 변수나 함수의 이름과

다른 사람, 혹은 먼 미래에의 내가 코드 작업을 할 때의 이름들이 겹치게되는 불상사가 일어나는 상황을 방지하기 위해 만드는 공간이라고 보면 된다

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