javascript - Inject variable into callback function scope - Stack Overflow

Is this possible to add variable to callback scope? What I want to achieve is:...Foo.prototype.bar = f

Is this possible to add variable to callback scope? What I want to achieve is:

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

I know I can pass baz variable as an argument or this but I'm interested in something like above.

Is this possible to add variable to callback scope? What I want to achieve is:

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

I know I can pass baz variable as an argument or this but I'm interested in something like above.

Share Improve this question asked Dec 24, 2011 at 21:24 jesperjesper 8898 silver badges21 bronze badges 1
  • You probably mean (new Foo).bar, since it's a property of instances, not of the constructor. – pimvdb Commented Dec 24, 2011 at 22:50
Add a ment  | 

2 Answers 2

Reset to default 4

No, it's not possible. The only ways are the ones you pointed out: as an argument or in this.

What about doing it this way:

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

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

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745635718a4637380.html

相关推荐

  • javascript - Inject variable into callback function scope - Stack Overflow

    Is this possible to add variable to callback scope? What I want to achieve is:...Foo.prototype.bar = f

    3小时前
    10

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信