javascript:将对象函数返回值赋给对象属性

javascript:将对象函数返回值赋给对象属性,javascript,Javascript,当我尝试将getUnit的返回值赋给inputUnit属性时,我的脚本抛出错误“this.getUnit不是函数”。有人能帮忙吗 function ConvertHandler(initialString) { this.inputUnit = this.getUnit(initialString); // Error here this.inputNum = this.getNum(initialString); this.returnedUnit = this.getRetur

当我尝试将
getUnit
的返回值赋给
inputUnit
属性时,我的脚本抛出错误“this.getUnit不是函数”。有人能帮忙吗

function ConvertHandler(initialString) {

  this.inputUnit = this.getUnit(initialString); // Error here
  this.inputNum = this.getNum(initialString);
  this.returnedUnit = this.getReturnUnit(this.inputUnit);
  this.returnedNum = this.convert();

  this.getNum = function(input) {
    return input.match(/((\d*\.?\d+)*(\/?)(\d*\.?\d+))/igm);
  };

  this.getUnit = function(input) {
    return input.match(/[A-Za-z]+$/i);
  };
}

var a = new ConvertHandler('4mi');
console.log(a.spellOutUnit());

看起来您试图在定义该方法之前调用它

如果顺序颠倒,则赋值成功,如以下代码段所示:

函数ConvertHandler(initialString){
this.getNum=函数(输入){
返回输入。匹配(/(\d*\。?\d+)*(\/?)(\d*\。?\d+))/igm);
};
this.getUnit=函数(输入){
返回input.match(/[A-Za-z]+$/i);
};
this.inputUnit=this.getUnit(initialString);
this.inputNum=this.getNum(initialString);
}
var a=新的ConvertHandler('4mi');
console.log(a.inputNum);

console.log(a.inputUnit)
非常感谢,它现在正在工作。作为解释:我以为我对js oop有误解,但事实上,这与函数提升有关,如果我将函数声明为“function getUnit(…){…}”,我想它会工作的,因为提升函数,但我将无法作为对象属性访问该函数。