是否可以在空值的原型中添加方法?
Is it possible to add a method to the prototype of the null value?
我想我已经知道这个问题的答案了,但我正在寻找确认。
我想做的是在一个变量上调用 toString(),如果为 null return 一个空字符串。我知道我可以使用 String(null) 将 null 转换为 "null",但是如果我想做这样的事情,那似乎很难看:
var amount = myPossiblyNullVar.toString().toFloat();
或者更简单
var amount = myPossiblyNullVar.toFloat();
我将 toFloat() 定义为
String.prototype.toFloat = function() {
var float;
float = parseFloat(this.cleanNum());
if (isNaN(float)) {
return null;
} else {
return float;
}
};
根据我所读的内容,似乎无法在 JavaScript 中扩展 NULL。任何人都可以证实这一点或提供一个我没有想到的替代方案吗?
您不想修改 JavaScript 空原型。
var amount = maybeNull ? maybeNull.toFloat() : null;
如果你有 null 传播支持 (ES7)
var amount = maybeNull?.toFloat();
如果 maybeNull 为 null,?.
将 return null 而不是尝试调用 toFloat()
.
我想我已经知道这个问题的答案了,但我正在寻找确认。
我想做的是在一个变量上调用 toString(),如果为 null return 一个空字符串。我知道我可以使用 String(null) 将 null 转换为 "null",但是如果我想做这样的事情,那似乎很难看:
var amount = myPossiblyNullVar.toString().toFloat();
或者更简单
var amount = myPossiblyNullVar.toFloat();
我将 toFloat() 定义为
String.prototype.toFloat = function() {
var float;
float = parseFloat(this.cleanNum());
if (isNaN(float)) {
return null;
} else {
return float;
}
};
根据我所读的内容,似乎无法在 JavaScript 中扩展 NULL。任何人都可以证实这一点或提供一个我没有想到的替代方案吗?
您不想修改 JavaScript 空原型。
var amount = maybeNull ? maybeNull.toFloat() : null;
如果你有 null 传播支持 (ES7)
var amount = maybeNull?.toFloat();
如果 maybeNull 为 null,?.
将 return null 而不是尝试调用 toFloat()
.