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.
-
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
2 Answers
Reset to default 4No, 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
评论列表(0条)