2 つのコード スニペットに違いはありますか?
foo
は のメンバー関数であるためobj
、それ自体this
を参照しobj
ます (メソッド呼び出しパターン)。
1.
var obj = {};
obj.prop = some_property;
obj.foo = function() {
do_something_with(obj.prop);
};
2.
var obj = {};
obj.prop = some_property;
obj.foo = function() {
do_something_with(this.prop);
};
私が取り組んでいたアプリケーションは、アプローチ2を使用するとクラッシュし続けました。
コードは次のようなものでした:
obj = {};
obj.listener = {
eventprocess : function(param) {
//some code
}
};
obj.init = function() {
this.a = library_func();
this.a.add_listener(this.listener);
};
アプローチ1を使用したときに機能しました。
理由はありますか?