javascriptでは、関数の中でオブジェクトのプロパティに格納されているものをメソッドと呼ぶようです
this にセットされるものが変わるのをおさらい
例としてはこんなの
var obj = {
value: 1,
doubleup: function() {
this.value += this.value;
},
tripleup : function() {
var that = this;
var helper = function() {
// this -> globalオブジェクトがセットされる
that.value = that.value * 3;
};
helper();
}
};
doubleup、tripleup がメソッドです
メソッド内ではthisにそのオブジェクトがセットされます
doubleupでは、objのvalueを2倍してます
tripleupのなかでは、thisが使えますが、その中の関数内では
this が グローバルオブジェクト になってしまいます(いけてない)
そのため、いったん var that = this; としておいてあげれば、valueをセットできます
実行するとこんな感じ
obj.doubleup();
console.log(obj.value); // 2
obj.tripleup();
console.log(obj.value); // 6
thisの動きがすこしスッキリしました