[英]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(); };
尽管我必须说,修改本地对象的原型( Array
, String
, Number
等)有很多缺点。 一种功能上的方法更灵活,更容错,即使用parseInt(value)
代替value.toInt()
可以容忍字符串和数字而不会出现问题。
您的方法将值作为装箱的Number实例返回,因此您只需要将其强制转换为基元即可。 例如,使用一元加运算符:
Number.prototype.toInt = function(){
return +this;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.