js functionの中のthis

718 ワード

functionの中のthisについては、functionで実行した時にしか確認できないことを明確にする必要があります.また、thisとは、functionの実行環境、すなわち、この方法を呼び出す対象をいう.
var user = {
    count:1,
    getCount:function(){
      return this.count;   
    }
}
console.log(user.getCount()); //1
var otherGetCount = user.getCount;
console.log(otherGetCount());  //undefined;
上記のコードはget Countメソッドに当たってother GetCountメソッドに値を付けています.全体的な環境でother GetCountメソッドを呼び出すと、この方法の実行環境はwindowです.windowではcountが定義されていないので、戻り値はundefinedです.以下のコードで検証できます.
var count = 2;
var user = {
    count:1,
    getCount:function(){
      return this.count;   
    }
}
console.log(user.getCount()); //1
var otherGetCount = user.getCount;
console.log(otherGetCount());  //2;