javascript 대상 지향,namespace,class,계승,리 셋 실현

팀 내 프로젝트 의 대부분 자 바스 크 립 트,css 등 클 라 이언 트 업 무 는 다른 동료 가 맡 고 있 기 때문에 이 동 료 는 매우 바 빠 서 재 구성 할 수 없습니다.첫째 도 건의 만 했 을 뿐 재 구성 을 즉시 실시 하지 않 았 습 니 다.그러나 저 는 며칠 전에 클 라 이언 트 의 작은 bug 를 바 꾼 적 이 있 습 니 다.확실히 그 코드 는 사람 으로 하여 금 구름 과 안개 속 에 있 게 보 였 습 니 다.어디 에 있 는 지 모 르 고 코드 를 쉽게 움 직 이지 못 했 습 니 다.그래서 제 가 사랑 하고 미워 했 던 자바 script 을 만 들 었 습 니 다.제 가 간단 한 js 를 써 서 namespace 를 실현 하고 계승 하 겠 습 니 다.리 로드 등 대상 을 대상 으로 하 는 특성 입 니 다.벽돌 을 두 드 려 물 을 주입 하 는 것 을 환영 합 니 다.namespace Namesapce.js
 
Namespace = new Object();
Namespace.register = function(fullname){
try
{
var nsArray = fullname.split(".");
var strNS = "";
var strEval = "";
for(var i=0;i<nsArray.length;i++){
if(strNS.length >0)
strNS += ".";
strNS += nsArray[i];
strEval += " if(typeof("+ strNS +") =='undefined') " + 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 = "cleaner";
}
MyCompany.Employee.prototype.ShowName = function(){
return "I'm "+this.Name+",my salary is $" + this.Salary;
}
MyCompany.Employee.prototype.Work = function(){
return "I'm a "+ this.Position +",I'm cleaning all day!"
}
//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 "I'm a "+ this.Position +",i'm good at "+ this.Technology +",i'm coding all day!"
}
테스트 코드

<html>
<title>javascript namespace,class, , </title>
<head>
<script language="javascript" src="namespace.js" type="text/javascript"></script>
<script language="javascript" src="employee.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
    function showEmployee(){                
        var emp = new MyCompany.Employee("xiaoming");
        showInfo(emp);
    }
    function showDeveloper(){
        var emp = new MyCompany.Developer("Gates");
        showInfo(emp);
    }    
    function showInfo(emp){
        alert(emp.ShowName());
        alert(emp.Work());
    }
</script>
</head>
<body>
<input type="button" value="show employee info" onclick="showEmployee();"/><br/><br/>
<input type="button" value="show developer info" onclick="showDeveloper();"/>
</body>
</html>
소스 코드 패키지 다운로드

좋은 웹페이지 즐겨찾기