1
我是新來的JavaScript和我做一個小應用程序作爲一個練習反應,但我堅持一個奇怪的問題。我試圖在同一個類的另一個方法中調用一個方法,但它並不總是有效。從方法錯誤調用方法「X不是函數」
export class Core {
constructor() {
this.promptList = ["Are you sure you want to proceed? [Y/n] ",
"Enter a username: ",
"Enter your email: "];
this.funcList = [this.proceed,
this.validateUser,
this.validateEmail];
this.currentStep = 0;
}
incStep(state) {
const newState = Object.assign({}, state,
{prompt: this.promptList[++this.currentStep]});
return newState;
}
printError(state, error) {
console.log("error");
return Object.assign({}, state,
{history: state.history.concat(error)});
}
proceed(input, state) {
if (input == "Y")
return this.incStep(state);
else if (input == "n")
return this.printError(state, "ok bye");
return state;
}
validateUser(input, state) {
return state;
}
validateEmail(input, state) {
return state;
}
process(input, currentState) {
const newState = Object.assign({}, currentState,
{history: currentState.history.concat(input)});
return this.funcList[this.currentStep](input, newState);
}
}
在過程(),我稱之爲從功能列表的方法,這工作正常,但當我嘗試調用從出發incStep()()拋出一個錯誤
Uncaught TypeError: this.incStep is not a function
at Array.proceed (http://localhost:8080/index_bundle.js:31881:34)
at Core.process (http://localhost:8080/index_bundle.js:31898:42)
我猜的錯誤是由於這樣的事實,「這」並不是指好對象,但我不明白究竟爲什麼在這種情況下:/
我在做什麼錯在這裏?
如何調用'process()'?你如何調用'proceed()'? – bennygenel
@bennygenel process()從另一個類中調用,並在我的代碼 –
的最後一行調用proceed(),您應該將這些部分添加到您的問題中 – bennygenel