返回Javascript Number的原始值

时间:2016-01-22 16:32:07

标签: javascript

我有一个简单的String扩展名转换为数字:

String.prototype.toInt = function(){ return parseInt(this); }

因为没有评论知道你在JS中获得了什么样的价值,所以我很难保护自己,如果我试图将一个数字转换为我认为是字符串的数字。我认为这样可行:

Number.prototype.toInt = function(){ return this;}

但这会返回整个函数。我看到Number中有一个[[PrimitiveValue]]属性,理想情况下我可以返回,但我无法弄清楚如何访问它(例如this['[[PrimitiveValue]]']

2 个答案:

答案 0 :(得分:3)

这应该适合你:

Number.prototype.toInt = function (){ return this.valueOf(); };

虽然我必须说,修改原生对象的原型(ArrayStringNumber等)有许多缺点。功能方法更灵活,容错,即使用parseInt(value)代替value.toInt()可以容忍字符串和数字而不会出问题。

答案 1 :(得分:1)

您的方法将值作为盒装Number实例返回,因此您只需将其强制转换为基元。例如,使用一元加运算符:

Number.prototype.toInt = function(){
    return +this;
}