次のような JavaScript クラスがあるとします。
var Person = {
//Private members
getXmlRequestObj : function() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
} else {
return "Your Browser needs an upgrade";
}
},
initialize: function() {
Person.importHTML = Person.getXmlRequestObj();
},
//Set up the global content retrieval object
//called importHTML
//importHTML: new ActiveXObject("Microsoft.XMLHTTP"),
_status:'',
getAjaxList:function(sWhat,sUrl) {
if (Person.importHTML.readyState == 4 || Person.importHTML.readyState == 0) {
Person.importHTML.open("GET", sUrl, false);// make it wait for the response
Person._sWhat = sWhat;
Person.importHTML.onreadystatechange = Person.handleListArrived;
Person.importHTML.send(null);
}
},
handleListArrived: function() {
if (Person.importHTML.readyState == 4) {
if(Person._sWhat=="units")
Person._unitList = Person.importHTML.responseText;
if(Person._sWhat=="ranks")
Person._rankList = Person.importHTML.responseText;
}
}
}
このコードを使用する代わりに:
if(Person._sWhat=="units")
Person._unitList = Person.importHTML.responseText;
if(Person._sWhat=="ranks")
Person._rankList = Person.importHTML.responseText;
Person._sWhat が Person の新しいメンバーになるものは何でも使用したい。つまり、Person の新しいメンバーを動的に割り当てるにはどうすればよいでしょうか。これにより、コードは次のようになります。
Person._sWhat = Person.importHTML.responseText; の効果に対する Person.something。