Javascript 将chr添加到数字原型中
我有以下功能:Javascript 将chr添加到数字原型中,javascript,Javascript,我有以下功能: var chr = function(X) { return String.fromCharCode(X) } 但是我想使用I.chr()而不是chr(I) 问:我如何将chr()添加到数字原型中?通常的方式,真的。请注意将数字括在括号中(或将其存储在变量中)的重要性,因为点通常表示小数点: Number.prototype.chr = function () { return String.fromCharCode(this); } alert((97).chr(
var chr = function(X) {
return String.fromCharCode(X)
}
但是我想使用I.chr()而不是chr(I)
问:我如何将chr()添加到数字原型中?通常的方式,真的。请注意将数字括在括号中(或将其存储在变量中)的重要性,因为点通常表示小数点:
Number.prototype.chr = function () {
return String.fromCharCode(this);
}
alert((97).chr()); // alerts "a"
我不确定这是否适用于所有浏览器,但我假设它适用
此外,正如布赖恩所指出的,以下措施将起作用:
console.log((33).chr());
console.log(Number(33).chr());
但是,以下方法不起作用:
33.chr();
编辑:尽管,正如Gumbo指出的,这确实:
33..chr();
以及检查属性是否已存在(请参阅以了解另一种检查方法):
要使用此选项,数字必须在变量中或用括号括起来。请注意,将标量数字转换为数字对象(称为装箱)会带来开销。如果要对同一个值重复执行转换,则需要先使用Number()显式地将其转换为对象
请注意,在某些情况下,简单地执行String.fromCharCode可能更容易或更清晰。@ghommy在这里,原语和对象之间的区别变得模糊,因为JavaScript是弱类型的,并且确实有一个
编号对象(使用toString、toFixed、toPrecision等方法)可以从一个没有声明为对象的数字中轻松访问。@Gumbo-我认为这与@Erik关于小数的评论有关…?解析器希望在第一个
后面有一个小数点值,chr
不是。但是30.
是有效的浮点数,30..chr
是数字30.
的属性访问表达式。
33..chr();
if (!Number.prototype.chr) {
Number.prototype.chr = function() {
return String.fromCharCode(this);
}
}
if (!Number.prototype.hasOwnProperty('chr')) {
Number.prototype.chr = function() {
return String.fromCharCode(this);
};
}