클래스 생성자가 정적 메서드를 호출 한 결과를 반환하는 상황이 있습니다.Javascript 클래스의 정적 메서드에서 멤버 함수를 참조하는 올바른 방법
그러나 정적 메서드에서는 멤버 함수 여야하는 함수를 호출해야하지만 멤버 함수이면 사용할 수 없습니다.
이렇게하는 좋은 방법이 있습니까?
이 코드는 분명히 도움이 될 것입니다
여기modifyProgram
class Program {
constructor (paths) {
this.inputs = {}
this.program = Program.createProgram(paths)
return this.program
}
static createProgram() {
const return_program = {name: test}
// async function executes
this.modifyProgramName() // This is an error because modifyProgram name is not static on this class
return return_program
}
modifyProgramName() {
// Execute a promise
fetch('someresource').then(() => {
this.program.name = 'newName'
}, 500)
}
정말 static
안된다 "수정"의 의미는 프로그램이 이미 존재하기 때문이다.
그러나 본질적으로 생성자 인 createProgram
에 modifyProgram
을 호출하려는 경우 Program 클래스의 인스턴스가 아직 존재하지 않기 때문에 설치할 수 없습니다.
이렇게하는 좋은 방법이 있습니까?
왜'createProgram()'정적? 당신이 현재의 문제를 극복했다고 가정 할 때, 당신은 어떻게 위의 클래스를 사용할 것입니까? – nnnnnn
'createProgram'은 프로그램을 반환하기 위해 생성자에서 호출되기 때문에 정적입니다. 정적이 아닌 경우 생성자에서 호출 할 수 없습니다. – Startec
당신은 여전히 생성자에서 메서드를 호출 할 수 있어야합니다. 나는 당신에게 보여줄 나의 대답을 업데이트 할 것이다. –