私は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