function globalFunc1() {
console.log(hello);
}
function globalFunc2() {
var hello = 'hello';
globalFunc1(); // expected to print "hello" but `hello` is undefined instead
}
globalFunc2();
내부 변수를 globalFunc1()
으로 전달하지 않고도 가능합니까? 나는 현재 내가 원하는 것을 얻기 위해 다음과 같은 해킹을 사용하고있다.하지만 너무 익살스럽고 우아하지 않다.전역 적으로 정의 된 함수의 액세스 함수 범위 체인
function globalFunc2() {
var hello = 'hello';
eval('(' + globalFunc1.toString() + ')()');
}
편집 :
실제로 내가하고 원하는 것을 달성하기 위해 Function.prototype.bind
, .call
또는 .apply
에 비슷 자바 스크립트에서 일부 기능을 찾고 있어요.
function checker() {
if (someVar == 'some value') {
/* ... */
}
}
setTimeout(function() {
var someVar = 'some value';
/* ... */
checker();
}, 1000);
아니요, 가능하지 않습니다. – zerkms