함수 내에서 콜백을 작성하면 그 콜백을 통해 해당 함수 내의 로컬 변수에 액세스 할 수 있습니까?콜백 내 함수의 로컬 변수에 액세스
Obj.prototype.outerFunc = function()
{
var x = 0;
var callback = this.innerFunc;
callback();
}
Obj.prototype.innerFunc = function()
{
x++;
}
x
자연스럽게 innerFunc
의 범위 내에 있지 및 자체에 의해 호출하면 오류가 발생합니다. 하지만 outerFunc
에서 전화하면 x
에 액세스하려면 innerFunc's
범위를 확장 할 수 있습니까?
편집 : 함수에 인수를 전달하거나 Obj의 x와 인스턴스를 만들고 싶지 않아야한다고 언급 했어야합니다. 나는 마치 outerFunc
에 로컬로 선언 된 것처럼 innerFunc
을 처리하려고합니다. 아래에서 수행 할 수있는 것과 유사합니다.
Obj.prototype.outerFunc = function()
{
var x = 0;
var callback = function() {
x++;
}
callback(); // works
}
유일한 방법은 'outerFunc'가 공유 범위에'x'를 넣는 것입니다. 전역 범위는 모든 기능간에 공유됩니다. 그러나 피 호출자의 범위에 직접적인 영향을 줄 수있는 방법은 없습니다. 기본적으로 당신은 * dynamic scope *라고 부릅니다. JavaScript 및 대부분의 언어는 * 어휘 범위 *를가집니다. –