2012-04-03 2 views
0

를 사용하여 자바 스크립트 객체하기 :참조/링크는이 같은 XML을 가지고 XML

<?xml version="1.0"?> 
<events> 
    <event> 
     <start></start> 
     <duration></duration> 
     <begin>{somecallback}</begin> 
     <complete>{someclass.someproperty = somevalue;}</complete> 
    </event> 
</events> 
  • 내가 XML을 구문 분석하고 자바 스크립트 코드의 문자열 버전을 실행할 수 있어야합니다. 자바 스크립트는 eval 함수를 가지고 있지만 eval이 위의 begincomplete에서 작동 할 수 있는지 또는이를 수행하는 더 쉬운 방법이 있는지 알아야합니다.

직접 매개 변수없이 콜백 액세스 양쪽 begincomplete 필요하거나 직접 클래스에 속하는 속성 값을 설정. 나는 eval() 콜백을 할 수 있다고 확신하지만이 방법으로 직접 속성 값을 설정하는 방법을 확신 할 수 없습니다. 예상대로

답변

2

eval이 범위에있는 개체에 작동합니다 :

js> var o = {} 
js> eval('o.p = 1') 
1 
js> o.p 
1 

당신은 당신이 무엇을하고 있는지에 대한 eval의 유연성을 필요로하는 경우 당신이 고려해야 할 것은. somecallback은 물건의 소유물이 될 수 있습니까? 그렇다면 fn이 "somecallback"인 경우 o[fn]()으로 전화 할 수 있습니다. 이것은 eval을 사용하는 것보다 훨씬 안전합니다. 귀하의 <complete> 섹션은 두 번째 경우에 eval을 피하는 방법을 권장하기에는 너무 모호합니다.

관련 문제