2012年11月28日
使われづらい広域変数
広域変数は、window オブジェクトで定義される変数で、
どのスコープからも参照できる、便利な変数です。
ただし、変数を参照する際に、window オブジェクトまでたどってから参照されるので、
処理は遅くなります。
また、他のスクリプトからも使用される可能性が高いので、
競合する可能性もあります。
それでも JSONP など、広域変数を使ったアクセスは必要だと思いますので、
ここでは、参照されづらい広域変数ということで考えてみました。
まずは、パスをそのまま登録する場合。
window['http://localhost/test.js'] = 'aaa';
スクリプトを指すことによって URL を一意にすることができるので、
他スクリプトとの競合が無くなります。
また、window[] の形式は window.property のような形式では取得できない
文字列を指定することができます。
それでも、同一スクリプト内で、複数の広域変数を定義する可能性があります。
上述の場合は、window['httpp://localhost/test.js'] の下に
プロパティを定義することも可能ですが、ここでは
window[(new Date()).getTime()];
のように、経過時間を数値に変換した結果を使用することができます。
この場合、 window.123456789 のような形式はアクセスすることができませんので、
より競合しづらい形式となるので、他スクリプトと競合する可能性が少なくなります。
{a8.net http://books.livedoor.com/item/1792718}
どのスコープからも参照できる、便利な変数です。
ただし、変数を参照する際に、window オブジェクトまでたどってから参照されるので、
処理は遅くなります。
また、他のスクリプトからも使用される可能性が高いので、
競合する可能性もあります。
それでも JSONP など、広域変数を使ったアクセスは必要だと思いますので、
ここでは、参照されづらい広域変数ということで考えてみました。
まずは、パスをそのまま登録する場合。
window['http://localhost/test.js'] = 'aaa';
スクリプトを指すことによって URL を一意にすることができるので、
他スクリプトとの競合が無くなります。
また、window[] の形式は window.property のような形式では取得できない
文字列を指定することができます。
それでも、同一スクリプト内で、複数の広域変数を定義する可能性があります。
上述の場合は、window['httpp://localhost/test.js'] の下に
プロパティを定義することも可能ですが、ここでは
window[(new Date()).getTime()];
のように、経過時間を数値に変換した結果を使用することができます。
この場合、 window.123456789 のような形式はアクセスすることができませんので、
より競合しづらい形式となるので、他スクリプトと競合する可能性が少なくなります。
{a8.net http://books.livedoor.com/item/1792718}
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
posted by FJT at 00:49| javascript