Ich bin gerade über eine Codezeile in einem Projekt gestolpert, in dem ich gerade arbeite. Ich fühle, dass ich in Javascript anständig bin, aber um ehrlich zu sein, habe ich keine Ahnung, was die folgende Codezeile tatsächlich macht:Was könnte diese Zeile von Javascript-Code möglicherweise tun?
var date = new (Function.prototype.bind.apply(Date, [null,].concat(buildDateParams(spec, base))));
Kann jemand von Ihnen Javascript-Gurus möglicherweise etwas Licht auf dieses werfen?
buildDateParams
scheint ein Array von Werten zu erstellen. Der Vollständigkeit halber ist hier die Funktion:
function buildDateParams(spec, base) {
if (!spec.match(specRegExp)) {
throw new Error('Invalid spec string');
}
var specParts = spec.toLowerCase().split(':');
let params = [];
for (let fieldIndex in fields) {
let field = fields[fieldIndex];
let specPart = (fieldIndex < specParts.length)
? specParts[fieldIndex]
: '0';
if (!specPart.length) {
specPart = 'b';
}
let param = 0;
if (specPart.substr(0, 1) === 'b') {
param = base[field.getter]();
specPart = specPart.substr(1);
}
if (specPart.length) {
param += parseInt(specPart);
}
params.push(param);
}
return params;
}
Es sieht für mich so aus, dass die Funktion ein Array von Zahlen zurückgibt, keine Strings. – Pointy
Ich habe nicht weiter in diese Funktion untersucht, Sie könnten leicht recht haben. Passt es an "Werte" anstelle von "Strings" an. – connexo