자바스크립트에는 네임스페이스라는 개념이 없지만 객체지향적 개념을 반영하려면
도 java의 package와 마찬가지로 네임스페이스를 가지고 있어야 하며,
는 클래스 이름 충돌을 방지하기 위해 주로 사용됩니다. 동일한 클래스 이름은 다른 네임스페이스에 속해 있는 한 충돌하지 않습니다.
네임스페이스를 만드는 가장 간단한 방법:
var java = {};
java.util = {};
//네임스페이스가 성공적으로 생성되었습니다. java.util
//java 아래에 클래스(함수)와 속성을 추가할 수 있습니다. util 또는 객체
java.util.HashMap = function()
{
this.ShowMessage = function()
{
alert("java.util.HashMap")
}
}
var map = new java.util.HashMap();
alert(map.ShowMessage()); //결과 표시: java.util.HashMap
//생성 캡슐화 Space 메서드 이름 지정:
//객체 정의. js에서 객체를 정의하려면 var JsObject = new Object()
var JsObject = {}; .namespace = function () //JsObject 객체 아래에 함수 네임스페이스를 정의합니다.
{
//*다음 코드에서 인수는 함수가 매개변수를 명확하게 정의하지 않는 경우 전달되는 매개변수입니다.
함수는 매개변수를 전달할 수도 있고 인수를 사용하여 수신할 수도 있습니다. 인수는 배열과 유사합니다.
여러 매개변수가 전달되면 순서대로 저장됩니다. 값 방법: 인수[0],arguments [1]....*/
var a = 인수 ,o = null,d,rt
for(var i = 0; i < a.length; i )
{
d = a[i].split('.'); // 들어오는 매개변수를 '.' 기호로 분할하여 d 배열에 넣습니다.
rt = d[0];
//배열의 첫 번째 값이 정의되지 않았는지 확인합니다. 정의되지 않은 경우 빈 객체 {}로 정의하고 변수 o
eval에 할당합니다. (' if (typeof ' rt ' == "정의되지 않음"){'
rt ' = {};} o = ' rt ';') for(var j = 1; j < d. length; j )
{
/*배열 d의 각 값을 키로 반복하여 객체 o에 추가합니다. o에 키가 있으면
가 없으면 o의 중간 값을 가져옵니다. , 값을 빈 객체로 할당합니다. }
}
}
JsObject.namespace("org.myJs"); //네임스페이스 선언: org.myJs
org.myJs.Student = function() //아래에 클래스 정의 네임스페이스 org.myJs Student
{
//Student 클래스에 변수를 정의하고 초기값을 할당하지만 이 변수에 대한 접근 권한은 공개입니다
this.studentNo = 's001'; >this.studentName = 'Xiao Ming';
this.sex = 'Male';
}
var s = new org.myJs.Student(); //Student 클래스 객체 생성
alert('학생 번호: ' s .studentNo);
alert('이름:' s.studentName)
alert('성별:' s.sex); 효과 및 첫 번째 기사 (1) javascript 경험 요약 객체 지향 - 클래스 결과는 동일합니다.