2011-12-24 2 views
4

콜백 범위에 변수를 추가 할 수 있습니까? 내가 달성하고자하는 것은 :콜백 함수 범위에 변수 삽입

 
... 
Foo.prototype.bar = function(fn) { 
    var baz = "baz!"; 
    fn.call(this); 
} 
... 
 
Foo.bar(function() { 
    console.log(baz) // gives "baz!" 
}); 

내가 인수 또는 thisbaz 변수를 전달할 수 있습니다 알고 있지만 나는 위의 같은에 관심이 있어요.

+0

'(새 푸) .bar'을. – pimvdb

답변

4

아니요, 불가능합니다. 유일한 방법은 당신이 지적한 것입니다 : 인수로 또는 this.

+0

변수가 함수이면 이벤트? 좀 더 정확히 말하면 : 콜백 함수는 콜백을 호출하는 대신 정의 된 일부 함수에 액세스해야합니다. – jesper

+0

@ jesper : 변수가 함수 였지만 두려웠습니다. – Ryan

0

무슨 이런 식으로 일을 대한 : 그것은 생성자, 인스턴스의 속성이기 때문에, 당신은 아마 의미

var Foo = function(){} 
Foo.prototype.handle = function(fn) { 
    var baz = "baz !"; 
    eval('(' + fn.toString() + ')();'); 
} 

var foo = new Foo; 
foo.handle(function(){ 
    console.log(baz); 
});