Javascript Math.sin添加额外的属性

时间:2013-08-28 01:19:26

标签: javascript

如果用户给出Math.sin(angle,'char'),我将如何更改Math.sin() 它会以度而不是弧度来承担罪。

到目前为止我已经

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

但现在我有无限递归,所以我假设我们需要一个引用。 我将如何完成这个?

2 个答案:

答案 0 :(得分: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 :(得分:1)

为什么不:

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