最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript 面向?qū)ο?實(shí)現(xiàn)namespace,class,繼承,重載

 更新時(shí)間:2009年10月29日 22:50:06   作者:  
這幾天老大天天嚷嚷要重構(gòu)我們寫(xiě)的javascript,抱怨代碼太混亂,可讀性差,維護(hù)困難,要求javascript也按面對(duì)象的模型來(lái)重構(gòu)。
由于組里項(xiàng)目大多的javascript,css等客戶(hù)端工作是另一同事在負(fù)責(zé),該同事又特忙無(wú)法重構(gòu),老大也就只是提建議并未立即實(shí)施重構(gòu)。但是我前些日子也改過(guò)些許客戶(hù)端的小bug,確實(shí)那代碼看得讓人有些云里霧里,不知身在哪山,輕易不敢動(dòng)代碼,于是就自己動(dòng)手鼓搗起我曾又愛(ài)又恨的javascript來(lái),自己寫(xiě)一個(gè)簡(jiǎn)單的js實(shí)現(xiàn)namespace,繼承,重載等面向?qū)ο蟮奶匦?歡迎拍磚灌水
.定義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>

源代碼打包下載

相關(guān)文章

最新評(píng)論

庆元县| 美姑县| 门头沟区| 珠海市| 玉溪市| 盖州市| 孙吴县| 广元市| 定日县| 清水县| 马边| 澄城县| 青河县| 赤峰市| 碌曲县| 三河市| 萨迦县| 兴业县| 阿尔山市| 治多县| 岑溪市| 铁岭县| 两当县| 清苑县| 鄄城县| 唐山市| 栖霞市| 河西区| 新余市| 石泉县| 四平市| 滨州市| 左云县| 郴州市| 宕昌县| 宣化县| 黑龙江省| 玛多县| 崇阳县| 叶城县| 阿克陶县|