繁体   English   中英

返回Javascript Number的原始值

[英]Return primitive value of Javascript Number

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

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

因为没有注释很难知道您在JS中获得了什么样的价值,所以如果我尝试将Number转换为我认为是字符串的Number,我想保护自己。 我认为这可以工作:

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

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

这应该为您解决问题:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM