2011-10-19 3 views

답변

1

Function.prototype.bind과 같은 것을 찾고있을 수도 있습니다. 특정 문맥에 인수가있는 함수를 바인딩 할 수 있습니다.

function myFunc(firstArg, secondArg) { 
    alert(firstArg + secondArg); 
}; 

var myVar = myFunc.bind(null, 'called!'); 

myVar(' - from myVar!'); 
// result is alert with -> "called! - from myVar" 

그것은 오래되지 브라우저에서하지만 링크 위는이 특정 시나리오에 대한 작동하도록 호환성 구현이 : 기본적으로,이 작업을 수행 할 수 있습니다.

+0

이것은 내가 원한 것이다. 총의 아들 ... 나는이 문제에 하루 종일 보냈다 : (이 문맥에서 null은 무엇을 의미 하는가?) – zakdances

+0

바인드 할 첫 번째 매개 변수는 함수를 호출하는 컨텍스트 ('this')를 의미한다. 함수가' 'this'를 사용하면 컨텍스트를 바인드 할 필요가 없다. –

0

새로운 기능을 만드세요!

function my_func(first_arg) { 
    alert(first_arg); 
}; 
var my_var = function() { 
    my_func('called!'); 
} 
2

변수가 초기화 (및 변수가 다음 원하는 것이 아니다 함수의 출력를 개최합니다) 때 귀하의 함수가 호출됩니다. 왜 함수의 출력을 반환하는 다른 함수를 만들지 않겠습니까?

function my_func(first_arg) { 
    return function(){alert(first_arg);} 
}; 
var my_var = my_func('called!'); 
0

그냥 함수를 반환하는 기능이 필요합니다

나는 상황을 설명 나쁜거야 그래서 여기에 응시하는 일부 코드입니다 인수없는 익명 함수를 사용하여 함수에 대한 호출을 래핑합니다.

var my_var = new function() { 
    my_func('called!'); 
} 

ECMA bind()의 첫 번째 매개 변수가 결합하기 때문에

var my_var = my_func.bind(undefined, 'called!'); 

합니다 (undefined가 : 스크립트 5 판은 (을 무두질 또는 더 구체적으로 ) 부분 응용 프로그램을 구현하는 Function.bind 방법을 소개하고, 그이에게 다음과 같은 방법을 쓸 수 것 값을 "매개 변수"로 변경).

Function.bind()은 비교적 최근에 널리 구현되지 않았습니다. Mozilla 문서에는 대부분의 기능을 사용하는 데 사용할 수있는 단순한 심이 들어 있습니다. John Resig는 부분 적용의 다른 구현으로 a blog post을 보유하고 있습니다. 또한 많은 JS 라이브러리 중 하나에서 사용할 수 있습니다.

1

이 것을 구현하는 간단한 방법 :

var my_var = function() { return my_func('called!'); }; 
+1

자바 스크립트에 부분 기능 응용 프로그램이 있습니다 :'function.bind'. –

+0

@Raymond가 포인터를 주셔서 감사합니다. 그 대답을 편집했습니다. – millimoose

관련 문제