问题
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.
回答1:
No, it's not possible. The only ways are the ones you pointed out: as an argument or in this
.
回答2:
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);
});
来源:https://stackoverflow.com/questions/8626951/inject-variable-into-callback-function-scope