2012-08-31 2 views
0

기능이 x.a()x.b() 인 경우를 가정 해 봅시다. 어떤 함수가 변수를 실행할지 결정하고 싶지만 내 방식으로는 작동하지 않습니다. 여기에 내 코드가 있으며 당신이 나를 도울 수 있기를 바랍니다. 내가 x.y("a", "Some text");를 호출 할 때 내가 x.a("Some text");를 호출하는 것처럼변수에서 전환 기능을 전환하십시오

var x = { 
    y: function(f, g){ 
     f(g); 
    } 
    a: function(txt){ 
     console.log(txt); 
    }, 
    b: function(txt){ 
     console.error(txt); 
    } 
} 

그래서 동일한 않습니다.

감사합니다. 이름으로 객체의 속성에 액세스 할 수

답변

2

사용 브래킷 :

var x = { 
    y: function(f, g) { 
     this[f](g); 
    }, 
    a: function(txt) { 
     console.log(txt); 
    }, 
    b: function(txt) { 
     console.error(txt); 
    } 
}; 
+0

왜 downvote? – Ryan

+1

'y'선언 후 OP 코드와 당신의 쉼표가 모두 누락되었습니다 (레코드의 경우, 나는 downvoter가 아닙니다). – bfavaretto

+0

@ minitech- 아마도 downvoter는 오히려 쉼표를 추가하기 위해 게시물을 편집하는 것보다 명성이 좋습니다. – RobG

관련 문제