私はこの2つの方法を持っています:
Cluster.prototype.initiate_xhr_request = function(url, callback) {
var self = this,
request = (Modernizr.test_xmlhttprequest) ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest();
request.onreadystatechange = function() {
if(request.readyState === 4) {
switch(request.status) {
case 200:
callback.apply(request,[ request.statusText ]);
break;
case 400:
callback.apply(request,[ request.statusText ]);
break;
default:
break;
};
} else
console.log('An error occured during the XHR request');
}
};
request.open("HEAD", url, false);
request.send();
};
Cluster.prototype.operations = {
'&&': function(array){
return array.reduce(function(previousValue, currentValue, index, array){
return previousValue && currentValue;
})
},
'||' : function(array){
return array.reduce(function(previousValue, currentValue, index, array){
return this.initiate_xhr_request(previousValue) || currentValue;
})}
};
EDIT:メソッドは次のように呼び出されます:
Cluster.prototype.calculate = function(operation, array){
return this.operations[operation](array);
};
/* call the calculate function */
this.calculate('&&', some_array);
明らかに、この行this.initiate_xhr_request(previousValue)
は機能しません。私はそこでやろうとしていることを行うための良い解決策を見つけようとし続けましたが、見つけることができませんでした (: それを行い、同じ構造を維持する方法はありますか ?