2
私は他の開発者と一緒にAureliaプロジェクトに取り組んでいます。コンテキスト変数の代わりにこれをjavascriptで使用することに問題がありますか?
一部はです。といくつかはコンテキスト変数を宣言しています
パフォーマンスの違い、メモリ割り当て、またはJavascriptでの使用の標準が使用されているかどうかは疑問でした。
この有する例:この無し
activate() {
this.isLoading = true;
this.modeText = "Edit";
this.service.getX(this.appState.StoreId,this.variableX).then(response => {
let stuff = JSON.parse(response.response);
this.widget = stuff;
this.isLoading = false;
});
}
例:薄い機能またはネスト関数の低レベル(スコープチェーン)と基本的に
activate() {
var context = this;
context.isLoading = true;
context.modeText = "Edit";
context.service.getX(context.appState.StoreId,context.variableX).then(response => {
let stuff = JSON.parse(response.response);
context.widget = stuff;
context.isLoading = false;
});
}
どちらも少し違います。 'context'は常に同じですが、最初の例では' this'は '.then'関数の中で異なります。 'context'を定義して' apply() 'や' call() 'を使う必要がないと思っています。 –
@MattLishman:'関数 '(){}'を ' '関数ですが、矢印関数(これは' this 'をレキシカルスコープにバインドしています)を使用しているので、同じことになります。だから私はこれらの特定の例では、機能に大きな違いはないと思います。あなたの推論は正しかったですが、一般的に、私が 'context'変数を見たとき、コールバックで正しい' this'値がアクセスできるようになりました。 –
申し訳ありませんが、それを逃した。 '=>'は私の画面から少し離れていました。私を無視。 –