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);
   };
}