|
.定義namespace
Namesapce.js
復(fù)制代碼 代碼如下:
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
復(fù)制代碼 代碼如下:
//注冊(cè)命名空間
Namespace.register("MyCompany");
//1.類(lèi):雇員
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.類(lèi):程序員
MyCompany.Developer = function(empName){
//繼承父類(lèi)屬性
MyCompany.Employee.call(this,empName);
//覆蓋父類(lèi)屬性
this.Position = "developer";
//擴(kuò)展屬性
this.Technology = "C#";
}
//繼承父類(lèi)原型方法
MyCompany.Developer.prototype = new MyCompany.Employee();
//覆蓋父類(lèi)方法
MyCompany.Developer.prototype.Work = function(){
return "I'm a "+ this.Position +",i'm good at "+ this.Technology +",i'm coding all day!"
}
測(cè)試代碼
復(fù)制代碼 代碼如下:
<html>
<title>Javascript 面向?qū)ο蟮膶?shí)現(xiàn) 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>
源代碼打包下載
JavaScript技術(shù):javascript 面向?qū)ο?實(shí)現(xiàn)namespace,class,繼承,重載,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。