Provo ad estendere JavaScript Math
. Ma una cosa mi ha sorpreso.L'estensione dell'oggetto Math tramite il prototipo non funziona
quando ho cercato di estenderlo da prototype
Math.prototype.randomBetween = function (a, b) {
return Math.floor(Math.random() * (b - a + 1) + a);
};
In console ho errore 'Can not impostare la proprietà 'CasualeTra' undefined' ...
Ma se io asigne questa funzione per Math.__proto__
Math.__proto__.randomBetween = function (a, b) {
return Math.floor(Math.random() * (b - a + 1) + a);
};
Quindi tutto funziona correttamente.
Qualcuno può spiegarmi perché funziona in questo modo? Apprezzo qualsiasi aiuto.
@GeorgeJempty Perché non ti piace la "proprietà"? – Oriol
@GeorgeJempty una "propria proprietà" in JavaScript è una proprietà che esiste direttamente su un particolare oggetto (al contrario di uno che viene ereditato tramite la catena del prototipo). Forse sarebbe più semplice da guardare se ci fossero delle virgolette o fossero in corsivo? – JLRishe
Grazie per i chiarimenti, le virgolette potrebbero essere d'aiuto, altrimenti sembrerebbe un inglese storpiato –