Ho bisogno di un metodo in oggetto Math di javascript che calcoli il logaritmo di qualsiasi base. Quindi, in pratica quello che ho fatto è stato questo:Come posso aggiungere il metodo a Math in javascript
Math.log_b=function(b,x){return Math.log(x)/Math.log(b);}
Qual è il lato negativo di estendere la funzione built-in come questo?
Per rendere più chiara la mia situazione, sto prendendo l'input dell'utente e lo sostituisco con i nomi delle funzioni degli oggetti Math appropriati e lo passiamo a eval per il calcolo. Se questo non è chiaro, il mio dilemma è, nel mio caso, che devo usare eval (anche se è malvagio) e estendere la funzione dell'oggetto Math più adatta al mio caso.
C'è possibilità di alcuni bug strani o altro quando estendo la funzione built-in in questo modo o sono le cose perfettamente normali da fare?
non esiste un costruttore Math() quindi non è possibile prototiparlo, le funzioni matematiche sono solo funzioni, non metodi di un oggetto. – defaultNINJA
Sì, non può essere prototipato. –
@Jack_of_All_Trades sì, può essere prototipato. Vedi la mia risposta. – Neal