オブジェクトの生成と削除

JavaScriptでも、変数と関数が混ざったオブジェクトというものを使用することができます。

プログラム例

例えば、以下のように使用します。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>サンプル</title>
</head>
<body>
<h1>オブジェクト</h1>
<p>
<script>
function Obj(n){
	this.X=n;
	this.show=function(para){
		return n+para;
	}
}
var myObj=new Obj(1);
var a=myObj.show(2);
document.write(a);
with(myObj){
	a=show(3);
	document.write(","+a);
}
delete myObj;
</script>
</p>
</body>
</html>

これを実行すると以下のように表示されます。

サンプル

オブジェクトの定義

このプログラムでは

function Obj(n){
	this.X=n;
	this.show=function(para){
		return n+para;
	}
}

により、オブジェクトが定義されます。

  1. プロパティ(変数):X
  2. メソッド(関数):show

となっています。プロパティXはオブジェクトが生成されると同時にnが代入されます。

そして、メソッドshowにより、引数とXを足した値が返されます。

オブジェクトの生成

その後

var myObj=new Obj(1);

によりオブジェクトを生成し、

var a=myObj.show(2);

で変数aに1+2=3を代入しています。そして、

document.write(a);

によりhtmlへaの値を出力しています。

withでオブジェクト名を省略

毎回オブジェクトを

myObj.XXX
myObj.YYY
...

と書いていくのが面倒なときがあります。そんなときは、

with(オブジェクト名){命令}

を使用します。すると

with(myObj){
XXX
YYY
...
}

と先ほどの命令のmyObjを省略できます。

 

先ほどのプログラムでも

with(myObj){
	a=show(3);
	document.write(","+a);
}

という形で使用してみました。かなり無理矢理ですが、これによりいきなり

show(3)

という形でしようできます。そして、writeで1+3=4が出力されます。

deleteで変数やオブジェクトを消せる

最後に、使用しなくなったオブジェクトmyObjを

delete myObj;

により消しています。deleteにより、変数やオブジェクトを消して再利用することができます。

著者:安井 真人(やすい まさと)