Potrzebuję metody w obiekcie Math javascript, która oblicza logarytm dowolnej podstawy. Więc w zasadzie to, co zrobiłem, było to:Jak dodać metodę do Math w javascript
Math.log_b=function(b,x){return Math.log(x)/Math.log(b);}
Co jest minusem rozszerzenia wbudowanej funkcji w taki sposób?
Aby moja sytuacja była bardziej przejrzysta, biorę dane wprowadzane przez użytkownika i zastępuję je odpowiednimi nazwami funkcji obiektów matematycznych i przekazuję je do eval do obliczeń. Jeśli to nie jest jasne, moim dylematem jest, w moim przypadku, użycie ewaluacji (nawet jeśli jest to zło), a rozszerzenie funkcji obiektu matematycznego najlepiej pasuje do mojej sprawy.
Czy istnieje możliwość pojawienia się dziwnych błędów lub innych rozszerzeń funkcji wbudowanej w taki sposób lub czy jest to całkowicie normalne działanie?
nie ma konstruktora Math(), więc nie można go prototypować, funkcje matematyczne są tylko funkcjami, a nie metodami obiektu. – defaultNINJA
Tak, nie można go prototypować. –
@Jack_of_All_Trades tak, można go prototypować. Zobacz moją odpowiedź. – Neal