所以这是我的ajax调用(非常标准的jQuery,但是使用了couchdb jquery库,http://daleharvey.github.com/jquery.couch.js/):
var stuff = "some stuff";
$.couch.db("test_db").create({
success: enyo.bind(this, function (data) {
console.log(stuff);
})
});
stuff = "a change in stuff";
我希望console.log的输出是“某些东西”而不是“改变东西”。
执行此操作的方法越多越好,因为我认为某些方法可能需要我不使用“enyo.bind”(http://enyojs.com/),但也许我可以用这些方法完成同样的事情
答案 0 :(得分:1)
你可以使用它的功能。
var create = function (stuff) {
$.couch.db("test_db").create({
success: enyo.bind(this, function (data) {
console.log(stuff);
})
});
};
create(stuff);
或者,它等同于匿名函数。
!function(stuff) {
$.couch.db("test_db").create({
success: enyo.bind(this, function (data) {
console.log(stuff);
})
});
}(stuff);
答案 1 :(得分:0)
您可以通过执行以下操作“锚定”变量:
(function(varname) {
// code that relies on varname
})(varname);
答案 2 :(得分:0)
var stuff = "some stuff";
var callback = (function(stuff){
return function(data){ console.log( stuff ) };
}(stuff));
$.couch.db("test_db").create({
success: enyo.bind(this, callback );
});
stuff = "a change in stuff";