그래, How to turn a String into a javascript function call? 또는 How to execute a JavaScript function when I have its name as a string과 같은 수많은 질문이 있습니다.문자열을 자바 스크립트 함수 호출로 변환하는 방법 (객체가있는 경우)
그러나 우리가 평범한 함수 이름을 가지고 있지는 않지만 사실상 함수 인 객체 속성 이름이 있다면?
처럼 :
var callMe = 'foo.bar.baz';
및 호출 할 것으로 예상되는 코드는 다음과 같습니다
window.foo = {
bar: {
baz: function() {
alert('Eureka!');
}
}
};
나는이 필요한 이유 : 콜백 매개 변수가 URL을 통해 전달하고 (응용 프로그램 설계에 의해) 될 수 있습니다 함수 이름 또는 객체의 속성에 대한 FQN.
eval()
이외의 아이디어가 있습니까?
UPD :
내 최종 구현이 당신을 위해 작동하는 경우
var parts = callbackName.split('.'),
callback;
for (i in parts) {
if (!callback) {
callback = window[parts[i]];
} else {
callback = callback[parts[i]];
}
if (typeof callback === 'undefined') break;
}
if (typeof callback === 'function') {
callback();
} else {
console.error('Passed callback is not a valid function');
}
그래, 너무 뻔했다. -S – zerkms
당신은 언제나 셜록 홈즈 이야기와 관련이있다. 스코틀랜드 야드는 집에서 편지를 보며 찾을 수없는 곳이다. 그들은 연구에서 책상으로 걸어 가서 그 위에 누워있는 봉투를 골랐던 Holmes를 데려왔다. 그게 편지 였어. –