2017-10-02 7 views
0

.NET에서는 정규화 된 형식 이름 개념을 사용합니다. 예를 들어 System.String이 있으며 System이 네임 스페이스이고 String이 유형입니다. 그런 다음 회원 FQN을 보유 할 수 있습니다. System.String.Substring, 여기서 Substring은 회원입니다.JavaScript의 정규화 된 이름

이 개념은 JavaScript 기반 도구에도 적용됩니까? 예를 들어 test npm 패키지가있는 경우 test.someClass.someFunction과 같은 유효한 표준 FQN이 있습니까?

+1

어느 정도까지. 만약 당신의'test' npm 패키지가'someClass'을 내 보낸다면'const test = require ('test');로 써야합니다. 그러면'test.someClass.someFunction'이 생깁니다. –

+1

기술 수준에는 네임 스페이스와 같은 것이 없습니다. 물론 객체를 속성 등으로 재귀 적으로 가질 수 있습니다. 재귀 적으로 설명하는 것과 거의 같습니다. 다소 정확히 당신이 대답을 기대하고 있는지 분명하지 않습니다. – deceze

+0

@AlexBlex 그래서이 경우에는 실제로'const' 선언이 없으면'packageName.class.member'라는 개념이 없습니까? –

답변

1

JavaScript에는 느슨한 유형 시스템이 있으므로 기본적으로 유형에 대해 신경 쓰지 않습니다. 수요에 따라 유형을 변경할 수도 있습니다.

node.js는 모듈을 사용합니다. 즉, 모든 파일은 기본적으로 루트 파일에서 시작하여 싱글 톤을 내보내는 네임 스페이스입니다.

변수가 크게 달라지는 경우 변수의 값을 함수로 설정할 수 있으며이 함수의 복사본 주위를지나 가지 않음을 유의해야합니다. closure의 기초가되는 원본에 대한 라이브 참조를 항상 사용합니다. 여기에서 함수 내부에서 변수를 호출하면됩니다.

함수가 변수의 범위에 액세스 할 수 있으면 함수가 변수를 사용합니다. 폐쇄는 파악하기 어려운 것이므로 일부 비디오를 살펴야합니다.

const string = function() { return 'hello' }; 

그런 다음, 당신은 단지 수요에 그것을 실행, 또는에 대한 참조를 전달할 수 있습니다

console.log(string) 
console.log(string()) 

const test = string 
console.log(test()) 
당신은 당신의 루트 파일에 가고, 그리고를 만들 const System = {}를 입력하여 선택 System.String을 복제 할 수 있습니다

객체라면, System.string = 'hello world'을 할 수 있습니다.

노드에서 System.js라는 파일을 새로 만들고 module.exports = { string: 'hello' }을 입력 한 다음 루트 파일에 입력해야합니다. 이 경우의 차이점은 루트 파일에서 원하는대로 호출 할 수 있다는 것입니다.