将chr添加到编号Prototype中

adding chr to the number Prototype

本文关键字:Prototype 编号 chr 添加      更新时间:2023-09-26

我有以下功能:

var chr = function(X) {
   return String.fromCharCode(X)
}

但是我想使用I.chr()而不是chr(I)。

Q: 如何将chr()添加到数字原型中?

Number.prototype.chr = function() {
   return String.fromCharCode(this);
}
var n = 33;
console.log(n.chr());

http://jsfiddle.net/CXWeV/

此外,正如Bryan所指出的,以下方法将起作用:

console.log((33).chr());
console.log(Number(33).chr());

但是,以下内容不起作用:

33.chr();

编辑:尽管,正如Gumbo所指出的,这确实是:

33..chr();

以及检查该房产是否已经存在(另一种检查方法见Erik的回答):

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

要使用此选项,数字必须位于变量中或用括号括起来。请注意,将标量转换为number对象(称为装箱)会产生开销。如果对同一个值重复进行转换,则需要先使用Number()将其显式转换为对象。

请注意,在某些情况下,简单地执行String.fromCharCode可能更容易或更清晰。

真的是正常的方式。注意将数字括在括号中(或将其存储在变量中)的重要性,因为点通常表示小数点:

Number.prototype.chr = function () {
  return String.fromCharCode(this);
}
alert((97).chr()); // alerts "a"

我不确定这是否适用于所有浏览器,但我认为它适用。

交互式示例