我有以下功能:
var chr = function(X) {
return String.fromCharCode(X)
}
但我想使用i.chr()而不是chr(i)。
问:如何将chr()添加到数字原型?
答案 0 :(得分:2)
Number.prototype.chr = function() {
return String.fromCharCode(this);
}
var n = 33;
console.log(n.chr());
此外,正如布莱恩指出的那样,以下内容将起作用:
console.log((33).chr());
console.log(Number(33).chr());
但是,以下内容不起作用:
33.chr();
编辑:虽然正如Gumbo所指出的那样,但确实如此:
33..chr();
同时检查该属性是否已存在(请参阅Erik's answer以了解其他方法):
if (!Number.prototype.chr) {
Number.prototype.chr = function() {
return String.fromCharCode(this);
}
}
答案 1 :(得分:1)
正常的方式,真的。请注意在括号中包围数字(或将其存储在变量中)的重要性,因为点通常表示小数点:
Number.prototype.chr = function () {
return String.fromCharCode(this);
}
alert((97).chr()); // alerts "a"
我不确定这是否适用于所有浏览器,但我认为确实如此。
答案 2 :(得分:1)
if (!Number.prototype.hasOwnProperty('chr')) {
Number.prototype.chr = function() {
return String.fromCharCode(this);
};
}
要使用此值,数字必须位于变量中或包含在括号中。请注意,将标量数转换为Number对象(称为装箱)会产生开销。如果您在相同的值上重复进行转换,则需要先使用Number()将其显式转换为对象。
请注意,在某些情况下,简单地执行String.fromCharCode可能更容易或更清晰。