2013-08-28 2 views
0

Как бы изменить Math.sin() так, чтобы, если пользователь дает Math.sin (angle, 'char') , он получит грех в градусах вместо радиана.Javascript Math.sin добавляет дополнительные свойства

До сих пор я

Math.sin= function() 
{ 
    if(arguments.length>1) 
    { 
     return Math.sin(arguments[0]*(Math.PI/180)); 
    } 
    else 
    { 
     return Math.sin(arguments[0]); 
    } 
}; 

, но теперь у меня есть зацикливание поэтому я полагаю, нам нужна ссылка. Как я продолжу это?

+1

Почему вы не просто создать новую функцию? –

ответ

1

Если вы хотите сделать, что вам нужно сохранить ссылку на старую версию и назвать это:

var oldSin = Math.sin; 

Math.sin= function() 
{ 
    if(arguments.length>1) 
    { 
     return oldSin(arguments[0]*(Math.PI/180)); 
    } 
    else 
    { 
     return oldSin(arguments[0]); 
    } 
}; 

http://jsfiddle.net/WQ9C9/

Ваш текущий код вызывает ваш новый Math.sin бесконечно (как вы» обнаружено).

1

Почему нет:

Math.mySin = function() 
{ 
    if(arguments.length>1) 
    { 
     return Math.sin(arguments[0]*(Math.PI/180)); 
    } 
    else 
    { 
     return Math.sin(arguments[0]); 
    } 
}; 
Смежные вопросы