이것은 this
과 (와) 관련이 없습니다. func.apply
및 func.call
은 적용되지 않습니다.함수에 'this'가 아닌 문맥을 전달하는 방법
함수의 현재 컨텍스트를 다른 함수로 전달해야합니다. 함수 내에서 명명 된 로컬 변수에 액세스해야한다는 의미입니다.
여기에 다소 인위적인 예입니다
function doSomething(f){
eval(f)
}
function test(callback){
doSomething("callback.apply(1, 2)")
}
test(function(a, b){
console.log(a + b);
})
가 어떻게 로컬 변수를 callback
그래서 eval
사용할 수 있습니다 doSomething
에 전달할 수 있습니다 -이는 인위적인 예입니다 인식하고 있습니다. 이것은 가능한가?
중첩 된 컨텍스트가 전달된다는 것을 알고 있으므로 doSomething
내에서 test
을 선언하면이 작업이 작동합니다. 그러나 그것은 저를 돕지 않습니다.
, 나는 부모의 컨텍스트에 액세스하는 것이 가능하다고 생각 작동하지만 것입니다. com/questions/6332017/how-to-get-this-value-of-caller-function)을 사용하십시오. 함수에'this '를 넘기는 데 문제가있는 이유는 무엇입니까? 당신의 문제에 대해 전역 컨텍스트 스택이 작동해야합니까? – Wikiti
실제 문제는 무엇입니까? 아니요, 임의의 함수 컨텍스트에 액세스 할 수 없습니다. – Bergi
평가 범위에서 특정 사항을 주입 할 수있는 평가판을 사용하는 [this snippet] (http://stackoverflow.com/a/24032179/1048572)을 보시길 바랍니다. – Bergi