我目前正在尝试创建公制和英制的单位转换,作为数字原型的一种方法。这是我的代码:
Number.prototype.UnitConversion = function (units){
switch (units){
case "Metric":
this = this/100;
return this;
case "English":
this = this/12;
return this;
}
}
var a = 5;
alert(a.UnitConversion("Metric"))
但是我得到一个左侧无效的参数错误。为什么会这样?
答案 0 :(得分:0)
这是因为意外分配给this
。也许尝试一个更具可读性的干净解决方案?像这样:
Number.prototype.UnitConversion = function (units){
let conversion;
switch (units){
case "Metric":
conversion = this/100;
break;
case "English":
conversion = this/12;
break;
//always add a default case
}
return conversion;
}
答案 1 :(得分:0)
此在JavaScript中是不变的,这意味着您无法重新分配它,请参见:this SO post。但是,您可以简单地返回对其执行的某些计算的值:
Number.prototype.UnitConversion = function(units) {
switch (units){
case "Metric":
return this/100;
case "English":
return this/12;
default:
return;
}
}
var a = 5;
console.log(a.UnitConversion("Metric"))