HTMLライブラリから言語変数を分離したいのですが、これに最適なアプローチが何であるかわかりません。
現在、私はこのようなものを手に入れました。
function putAlertA() {
alert('This is alert a');
}
function putAlertB() {
alert('This is alert b');
}
function setAlerts() {
putAlertA();
putAlertB();
}
今、関数から文字列を分離したい:
ソリューション A
function putAlertA() {
var strings = getLanguageVars();
alert(strings[0]);
}
function putAlertB() {
var strings = getLanguageVars();
alert(strings[1]);
}
function setAlerts() {
putAlertA();
putAlertB();
}
function getLanguageVars() {
var strings = new Array();
strings[0] = "This is alert a";
strings[1] = "This is alert b";
return strings;
}
ソリューション B
function putAlertA(strings) {
alert(strings[0]);
}
function putAlertB(strings) {
alert(strings[1]);
}
function setAlerts() {
var strings = getLanguageVars();
putAlertA(strings);
putAlertB(strings);
}
function getLanguageVars() {
var strings = new Array();
strings[0] = "This is alert a";
strings[1] = "This is alert b";
return strings;
}
ソリューション C
function putAlertA() {
var strings = window.strings;
alert(strings[0]);
}
function putAlertB() {
var strings = window.strings;
alert(strings[1]);
}
function setAlerts() {
putAlertA();
putAlertB();
}
window.strings = new Array();
strings[0] = "This is alert a";
strings[1] = "This is alert b";
ソリューションAとBはメモリ消費の点でオーバーヘッドが多すぎると考えているため、ソリューションCが最適だと思います。言語配列はグローバル変数であるため、論理的には見えません。しかし、私は使用するのを少しためらっています。これを行う方法が正しいかどうかはわかりません。多分これを行うためのより良い方法がありますか?私はjQueryを使用していますwindow.