그룹 내 자바스크립트, CSS 등 클라이언트측 작업 대부분을 다른 동료가 처리했고, 그 동료가 너무 바빠서 리팩토링을 할 수 없었기 때문에 상사는 제안만 하고 리팩토링을 즉시 구현하지 않았다. 그런데 며칠 전에는 클라이언트의 작은 버그도 수정했어요. 코드가 좀 헷갈리기도 하고, 코드를 쉽게 만질 수도 없어서 직접 만지작거렸거든요. . 한때는 자바스크립트를 사용하여 네임스페이스, 상속, 오버로드 및 기타 객체 지향 기능을 구현하는 간단한 js를 작성했습니다.
네임스페이스 정의
Namespace = new Object()
Namespace.register = function (fullname){
try
{
var nsArray = fullname.split(".");
var strNS = "";
var strEval = ""
for( var i=0;iif(strNS.length >0)
strNS = ".";
strNS = nsArray[i]
strEval = " if(typeof(" strNS " ) =='undefine') " strNS " = new Object(); "
}
if(strEval != "") eval(strEval); catch(e){alert(e .message);}
}
.Employee.js
Employee.js
//네임스페이스 등록
Namespace.register("MyCompany")//1. 클래스: 직원
MyCompany.Employee = function(empName){
this.Name = empName;
this.Salary = 1000;
this.Position =
}
MyCompany.Employee.prototype.ShowName = function (){
return "저는 " this.Name "입니다. 제 월급은 $입니다.
}
MyCompany.Employee.prototype.Work; = function(){
return " 저는 " this.Position "입니다. 하루 종일 청소 중이에요!"
}
//2. 클래스: 프로그래머
MyCompany.Developer = function (empName){
// 상위 클래스 속성 상속
MyCompany.Employee.call(this,empName);
//상위 클래스 속성 재정의
this.Position = "developer"; //속성 확장
this. Technology = "C#";
}
//상위 클래스 프로토타입 메서드 상속
MyCompany.Developer.prototype = new MyCompany.Employee(); /상위 클래스 메서드 재정의
MyCompany.Developer.prototype.Work = function(){
return "나는 " this.Position "입니다. 나는 " this.Technology "를 잘합니다. 하루 종일 코딩!"
}
테스트 코드
코드 복사
코드는 다음과 같습니다. 다음은 다음과 같습니다. javascript 객체 지향 구현 네임스페이스, 클래스, 상속, 오버로딩 스크립트 언어="javascript" src="namespace.js " type="text/javascript">
저자별 최신 기사
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31