0

これは私の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/ )を使用しない必要があると思いますが、おそらくそれらの方法で同じことを少し異なる方法で達成できます.

4

3 に答える 3

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);

関数の前の感嘆符は何をするのですか?を参照してください。

于 2013-01-13T16:50:43.337 に答える
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";
于 2013-01-13T16:48:21.873 に答える
0

これを行うことで、変数を「固定」できます。

(function(varname) {
    // code that relies on varname
})(varname);
于 2013-01-13T16:44:12.547 に答える