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(…){…}”,我想它会工作的,因为提升函数,但我将无法作为对象属性访问该函数。