グループ内の JavaScript や CSS などのクライアント側の作業のほとんどは別の同僚が担当しており、その同僚は忙しすぎてリファクタリングを行うことができなかったため、上司は提案のみを行い、すぐにはリファクタリングを実装しませんでした。しかし、数日前にクライアントのいくつかの小さなバグも修正しました。コードは確かに少しわかりにくく、簡単にコードに触れる勇気はないので、自分でいじってみました。 JavaScript を使用して、名前空間、継承、オーバーロード、その他のオブジェクト指向機能を実装するための
Namesapce.js
を定義してください。
Namespace = new Object()
Namespace.register = function (フルネーム){
try
{
var nsArray = fullname.split(".");
var strEval = ""; var i=0;iif(strNS.length >0)
strNS = ".";
strNS = nsArray[i]; " if(typeof(" strNS " ) =='未定義') " 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.Position = "クリーナー"; >MyCompany.Employee.prototype.ShowName = function (){
return "私は " this.Name "、私の給料は $" this.Salary;
}
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"> <スクリプト言語="javascript" src="employee.js" type="text/ javascript">