나는 기능이 방법구축 JS 함수 이름은 동적으로
redBall(this);
전화를 원하지만 동적으로 문자열에서 구축하고자합니다. 이런 식으로 시도했지만 작동하지 않습니다.
var color = 'red';
color+'Ball'(this);
나는 기능이 방법구축 JS 함수 이름은 동적으로
redBall(this);
전화를 원하지만 동적으로 문자열에서 구축하고자합니다. 이런 식으로 시도했지만 작동하지 않습니다.
var color = 'red';
color+'Ball'(this);
이 같은 것을 할 수있는 :
var ballFunctions = {
redBall: function(obj) {
alert("Hi, I'm a red ball");
},
blueBall: function(obj) {
alert("Hi, I'm a blue ball");
}
};
color = "red";
ballFunctions[color + "Ball"](this);
color = "blue";
ballFunctions[color + "Ball"](this);
function ball(color, obj) {
ballFunctions[color + "Ball"](obj);
// Or use the window object if your funcs are in the global namespace like Cameron said
// window[color + "Ball"](obj);
}
color = "red";
ball(color, this);
동적이라는 기능이 좋은 연습하지 않습니다 . 이건 어때? Ball('red', this);
+1. 좋은 선택 - 나는이 대답을 좋아한다. –
모든 기능을 수행하는 기능은 그다지 실용적이지 않습니다. – icktoofay
나는 여전히 동적 함수 이름이 거기에 논리를 구현하는 나쁜 방법이라고 말하고 싶습니다. 다른 함수 호출이나 Rfvgyhn과 같은 switch 문은 (입력하기 어렵습니다) 훨씬 더 유지 보수가 쉬운 코드를 생성 할 것입니다. –
첨자 암시 적 window
객체를 : 다음
function Ball(color, object)
{
// do stuff
}
그리고 통해 전화를 귀하의 예는 문자열은 때로 믿을 수 있기 때문에 이해가되지 않습니다 문자열 'Ball'
을 (를 호출하려고 시도했습니다
window[color + 'Ball'](this)
'callable'), 결과를 color
과 연결하십시오.() {
window[color + 'Ball'](this);
그러면 실제 코드를 반영하는 코드와 더 많은 코드를 보여야합니다. – JAAulde
당신은 ballFunctions [ 'myNewFunction'] = 기능 '할 수있는 ... : –
고마워, 이건 정말 해보 았는데. – jarn