다른 객체의 private 함수 인 객체의 함수에 대해 timeout을 설정하려고합니다. 실제로 구조는 다음과 같은 것입니다 :private 객체의 함수에 대한 setTimeout
function MainObject() {
var id;
...
var InnerObject = function() {
this.getSomething = function() { ... }
}
this.testFunc = function() {
id = setTimeout(InnerObject.getSomething(), 1000);
}
}
... 그리고 시간 제한을 설정하려고 할 때 그것이 '정의되지 않은'말하는대로 작동하지 않습니다, 그것은 개인 함수의 나는 직접이 기능을 실행할 수 없습니다 . 내가 뭘 잘못하고 있니? 특정 무언가를 찾으려고했지만 성공하지 못했습니다. 범위 오류 문제의 어딘가에 오류가있는 것 같지만 여전히 이해하지 못합니다.
첫 번째 문제 : InnerObject.getSomething()을 호출하지 않고 할당하고 있습니다. – epascarello
'InnerObject'는 생성자 함수처럼 보입니다.하지만 결코 생성자로 객체를 생성하지 않았습니다 (예 : 호출하지 않은 경우). 'InnerObject.getSomething' 속성은 없습니다. 당신이'var obj = new InnerObject();'를했다면, 당신은'obj.getSomething()'을 할 수 있습니다. 또한'setTimeout()'에 전달할 필요가있는 것은 함수이므로'.getSomething()'이 함수를 반환하지 않으면 실행하고 싶지 않습니다. – jfriend00
실망스러운 질문입니다. 여기서 많은 일들이 잘못되어 있으며, 당신이하려는 일을하는 데 지나치게 복잡한 접근법을 사용하고있는 것처럼 보입니다.하지만 실제로 해결하려고하는 문제에 대한 정보가 없거나 이 복잡한 경로를 거치지 않고 "올바른 방법으로"제안 할 정확한 것을 정확히 알지 못합니다. – jfriend00