2012-02-04 2 views
-1

코드의 다음 두 조각을 고려 사항 :액세스는 로컬 평가

(function f() { 
    var x; 
    try { 
     eval("x"); 
     console.log('No error!'); 
    } 
    catch (e) { 
     console.log('Error!'); 
    } 
}(eval)) 

(function f(eval) { 
    var x; 
    try { 
     eval("x"); 
     console.log('No error!'); 
    } 
    catch (e) { 
     console.log('Error!'); 
    } 
}(eval)) 

제 지문 No error! 번째 인쇄 Error!. eval이 인수 중 하나 인 함수 범위 내에서 "local eval"에 액세스 할 수 있습니까?

+1

매개 변수 이름으로'eval'을 사용하지 마십시오. 혼란스럽고 나쁜 습관입니다. – Jivings

+0

좋습니다. 나는 대답했다! 그래도 습관을 짓지 마라 :) – Jivings

+1

익명의 함수 호출을 위해 괄호'}())'가 엉망이다. '})()' – vol7ron

답변

0

전역 함수가 window 객체의 일부이 경우

window.eval() 

을 사용할 수 있어야합니다. 대신 window.eval()으로 전화하십시오.

+0

저에게 맞습니다! http://jsfiddle.net/bT9SA/1/ – Jivings

0

당신은 여전히 ​​