【JavaScript】ユーザクラス(オブジェクト)の作成方法

  クラスの実体は、Function 記述です



1)

インスタンスを作成する場合、 var obj = new lightboxtool(); としますが、
obj は lightboxtool で定義されたプロパテイを持つオブジェクトのインスタンスです

2)

this は、obj を内部から参照するオブジェクトです。
this.xxxxx にセットされているものは、インスタンス毎に固有なインスタンス変数です。
後から自由に追加、変更できます
( ※ メソッドを別のオブジェクトのイベントに登録し、そのオブジェクトから呼ばれると、thisはそのオブジェクトとなります )

3)

obj.xxxxx と obj["xxxxx"] は同じものを指します。
これを利用すると、連想配列を作成する事ができます
また、xxxxx の中にセットされているものがファンクションの場合、obj["xxxxx"]() として実行できます。

  
// **********************************************************
// EUC-JP で記述しています
//
// 1) function 内で this を使用するとそれはオブジェクト
// 2) オブジェクトのインスタンスは、new で作成
// 3) this.名称 で、名称はプロパティにもメソッドにもなる
//
// ↓実装記述
// <SCRIPT
// 	charset="euc-jp"
// 	language="javascript"
// 	type="text/javascript"
// 	src="lightboxtool.js">
// </SCRIPT>
//
// **********************************************************
function lightboxtool( ) {

	this.version = "20080124";

	// *************************************************
	// バージョン文字列を返す
	//
	// ↓実行例( 同じ結果 )
	// alert( obj.getVersion() )
	// alert( obj["getVersion"]() );
	// alert( obj.version );
	// alert( obj["version"] );
	// *************************************************
	this.getVersion = function( ) {

		return this.version;
	}

	// *************************************************
	// String オブジェクトにメソッド追加
	//
	// ↓内部 trim メソッドの登録方法
	// obj = new lightboxtool();
	// obj.registStringMethod( "trim", obj.trim );
	// *************************************************
	this.registStringMethod = function( funcString, func ) {

		String.prototype[funcString] = func;
	}

	// *************************************************
	// 文字列のトリム
	// *************************************************
	this.trim = function( ) {
		var str = "";
		var regL = /^[ \s]+/;
		var regR = /[ \s]+$/;
		var len = arguments.length;
		// 内部メソッドとして使用する場合( 引数有 )
		if ( len == 1 ) {
			str = arguments[0];
		}
		// String オブジェクト登録用( 引数なし )
		else {
			str = this.valueOf();
		}
		str = str.replace(regL,"");
		str = str.replace(regR,"");
		return str;
	}

	// *************************************************
	// プロパティ名の一覧を配列として返す
	//
	// ↓使用例
	//	a = obj.prop();
	//	for( key in a ) {
	//		alert( a[key] );
	//	}
	// *************************************************
	this.prop = function( ) {
		var arr = new Array();
		var key;
		var idx = 0;
		for (key in this) {
			arr[idx] = key;
			idx++;
		}
		return arr;
	}
}
  

  プロパティ一覧



  
// インスタンス作成
obj = new lightboxtool();

// プロパティの追加		
obj.newprop = "abcde";

// プロパティ名の一覧表示
for( key in obj ) {
	alert( key );
}

// プロパティの内容の一覧表示( ファンクションの場合、定義が表示されます )
for( key in obj ) {
	alert( obj[key] );
}
  











   SQLの窓    create:2008/01/24  update:2014/09/07   管理者用(要ログイン)





フリーフォントWEBサービス

SQLの窓WEBサービス

SQLの窓フリーソフト

写真素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ