最近、私はjQueryを使ってJavaScriptのOOPを使用しようとした関数ではありません、 私はこのコードを書きました。JavaScriptがthis.updateが
JavaScriptのOOPをjQueryでより良い方法で使用するにはどうしたらよいですか?この問題をどうやって解決できますか?
最近、私はjQueryを使ってJavaScriptのOOPを使用しようとした関数ではありません、 私はこのコードを書きました。JavaScriptがthis.updateが
JavaScriptのOOPをjQueryでより良い方法で使用するにはどうしたらよいですか?この問題をどうやって解決できますか?
これは範囲の問題です。 「this」は「each」関数呼び出しの前と呼び出しの前では異なっていることに注意してください。
スコープは、ローカル変数、この場合は「me」に割り当てることで使用できます。
init:function() {
var me = this;
$.each(this.types, function(key, value) {
me.update(key, value);
});
},
スコープの違いを確認したい場合は、両方にログオンしてコンソールにチェックインしてください。
ここでは最初の「this」はグローバルスコープですが、もう1つ(匿名メソッド内)はローカルスコープです。
init:function() {
console.log(this);
$.each(this.types, function(key, value) {
console.log(this);
});
},
あなたはこの範囲でより明確化のためにこれを参照することができます。http://javascriptplayground.com/blog/2012/04/javascript-variable-scope-this/ @Ashが言ったことに加えて
、私はbind
init:function() {
$.each(this.types, function(key, value) {
this.update(key, value);
}.bind(this);
},
のファンがいますありがとうございます!そして、JavaScript OOPでjQueryを使用するより良い方法がありますか? –
私はあなたがこのアナロジーを使用している方法で問題を予見できません。持ち歩くと、あなたがそれを使用するにつれてもっと学びます。 – Ash
他の人がこれを見つけることができるように、それがあなたのために働くなら、答えとしてマークしてください。 – Ash