//class bar
//(construtor)
go(res, err){
//functions that use 'this'
console.log(this);
}
foo(article){
//do stuff
var that = this;
var sorting = {
sort: function(t){
//do stuff
console.log(that); //looks exactly like 'bar'
return that;
},
go: that.go //ERROR: want this.go, got foo.sorting
}
return sorting;
}
はなぜ'これは渡されたときに' this 'と同じではありません、なぜですか?
new bar.foo('x').sort();
作業罰金とショー 'は' & 'はこの' 'バー'、しかし
new bar.foo('x').go();
として
がfooの仕事と(私の知る限り)を返していません 'これ' を行います?
方法は
new bar.go();
と同じになるように、私のルート
new bar.foo('x').go();
のですか?
ローカル変数の代わりに 'this.sorting'を割り当てることはできますか?このようなチェーンをすると、チェーン以外のインスタンスを返すとチェーンが壊れる可能性があります。 – tadman
@tadman 'bar'はソートオプションのタイプが異なる複数の" foo "関数を持っていますので、簡単にするために' bar.fooX.sort() 'は複数の関数の構文です。これは悪い習慣ですか? – Ben
私はいつも物事をエンジニアリングして、「これを返す」が連鎖するように設計されたメソッドの最後にあるようにします。これは、重複した呼び出しが発生している場合には、内部状態を維持することを意味します。私はあなたの一般的な目的がここに何であるか分かりません。 – tadman