これは私のコードの例である:私の入力にjQueryで適切なクロージャを作成するには?
var bar = function() {
this.baz = function() {
this.input = $('.input');
this.input.bind("keydown keyup focus blur change", this.foo);
}
this.foo = function(event){
console.log(this);
}
}
クリックすると、明らかに、私のコンソールでinput
を与えます。代わりにbar
をthis
とすることはできますか?
「var bar =」の部分は本当に必要ないと付け加えます。クロージャをインラインで呼び出すには、最後のセミコロンの前に "()"を追加します。 – spoulson
はい、ただし、クロージャが自動的に実行されると、 'this'がウィンドウオブジェクトになるため、' baz'と 'foo'がグローバルになります。 – CMS
ありがとう、私はこの "外側の閉鎖"オプションと一緒に行くと思う。しかし、私はinput.bind()の中で、dunno、second bindのような、もっとエレガントなものを望んでいました。私はどこかでこのようなものを見たと感じています。他のオプションはありますか? – n1313