CRSプログラミング
12
変数定義方法による差異について
12
[解決方法]
変数の定義方法として、ObjectTypeを指定する方法とvar変数で定義する方法が
あります。
例えば、Function内でカウンタ変数を定義する場合、
Number cnt = 0;
・・・【1】
または
var cnt = 0;
・・・【2】
で定義することが出来ます。
上記の定義は以下の点で異なります。
【1】 Number cnt = 0; とした場合
cnt は変数定義を実行したオブジェクトを親オブジェクトとした「オブジェクトツリー」に
接続され、cnt というオブジェクトが生成されます。
よって、Function内の処理が終了した後も、異なる処理(異なるスコープ)から
<親オブジェクト>.cnt と参照することが可能です。
また、オブジェクトツリーに接続されたオブジェクトは、Function内での用途が終わって
スコープを抜けても、明示的に削除した場合や親オブジェクトが削除されるまで、
メモリ上に保持されます。
【2】 var cnt = 0; とした場合
定数オブジェクトのリファレンスが cntという名前のvar変数に格納されます。
var変数はオブジェクトツリーに接続されることはなく、変数への参照もFunction内でのみ
有効となります。
また、定数オブジェクトはFunctionの処理(スコープ)から抜けたタイミングで自動的に
削除されます。
上記のように、定義方法によってそれぞれ長所・短所があります。
【1】の書式で定義した場合などは、複数のスコープから参照ができ、便利ですが、
値の変更も可能なため、処理中で前提となる値でなくなってしまう可能性も含まれます。
また、メモリ上に保持されたままとなるとリソースの消費にもつながります。
【参考情報】
Biz/Browserのリソース管理
変数の用途に合わせて定義方法を選択してください。
管理番号:CRSM_012
Biz-Collections Bizの宝箱 トップへ
Biz/Browser Mobile・Biz/Designer Mobile TIPS集 トップへ