2011-10-27 2 views
1

배열과 함께 함수의 매개 변수를 simbolize 할 수 있습니다. 예배열을 기반으로 매개 변수를 사용하여 함수를 만드는 방법

:

var params = ['name', 'age', 'email']; 

이 정보는이 배열을 반환 다른 엔드 포인트에 의해 생성된다. 이 배열에서 나는 다음과 같은 함수를 작성하고 싶습니다 :

function (name, age, email) { 
    //... 
    //my custom code 
    return result; 
} 

을 그래서 당신은 내가 자동으로 기능을 만들고 그 함수에 인수로 각 배열 요소를 사용하고 싶습니다 볼 수 있습니다.

eval을 사용하지 않고이를 달성 할 수있는 방법이 있습니까?

플라이에서도 new Function('name', 'age', 'email', 'fn body')을 생성 할 수 없습니다. 사전

+1

원하는 것을 수행하는 것은 의미가 없습니다. 명명 된 매개 변수를 사용하여 "만들기"기능을 수행 할 필요가 없습니다. 여기서 진짜 문제는 무엇입니까? –

+0

정말 이것을해야합니까? 배열이나 객체를 매개 변수로 기대하고 거기에서 필요한 것을 얻을 수 있습니다. –

답변

1
var a = Function.apply({}, ["name", "age", "email", "return email;"]); 

/*function anonymous(name,age,email) { 
return email; 
}*/ 

a(1,2,3); 

//3 

당신이 전화를하려는 경우 즉시

0

에서

덕분에 당신은 .apply()를 사용할 수 있습니다. 함수 본문이 배열의 마지막 멤버인지 확인하십시오.

Function.apply(null, your_array); 
0

에 코드로 문자열을 평가하지 않고 있지만 eval하고 당신이 아마 다르게 할 수있는 일을하려고하는 이상 구체적인 혜택이 없습니다 함수를 매개 변수 배열과 함께 사용하려면 apply을 사용하십시오. 예를 들면 다음과 같습니다.

function foo(a, b, c) { 
    alert(a + b + c); 
} 
foo.apply(null, [1, 2, 3]); 
관련 문제