初見

1290 ワード

一、概要
 thisはJavaScriptのキーワードで、いつもオブジェクトを指しています.呼び方によって、thisの値も違います.本論文では、一般的な呼び出し方法を列挙し、対応する場合には、thisが指すオブジェクトを指摘する.
二、グローバルthis
 JavaScriptでは、グローバルthisは直接windowオブジェクトを指します.
三、関数の中でthis
 関数の中のthisの具体的な指示の対象は、関数の呼び出しによって決定されます.主に以下の種類があります.1.関数の直接的な呼び出しは、このとき、thisはwindowオブジェクトを指します.
function fn(){
  console.log(this);
}
fn();//window
2.関数をオブジェクトメソッドとして呼び出します.このとき、thisは現在のオブジェクトを指します.
var obj={
  fn:function(){
    console.log(this)
  }
}
obj.fn()//obj
3.コンストラクタのthisは、newからコンストラクタを呼び出すと、新たに生成されたオブジェクトを指します.
var People=function(){
  console.log(this);
}
var p=new People();//p
4.call、appy指定の場合、tihsは指定の対象となります.
function fn(){
  console.log(this);
}
var o={
  1:1
}
fn.call(o);//o
5.bind指定、注意:bindとcall、applyの違い、bindは直接関数を呼び出すのではなく、元の関数と同じ関数体と作用領域の関数を返します.戻り関数のthisは恒久的に指定されています.いずれにしてもこの関数を呼び出します.
function fn(){
  console.log(this);
}
var o={
  1:1
}
var f2=fn.bind(o);
f2();//o
f2.call({2:2});//o
5.DOMイベントハンドリング関数のうち、thisはe.current Targetを指し、よく傍受されたその要素オブジェクトを追加します.
 div.addEventListener("click",function(e){
 console.log(this===e.currentTarget);//true
});
1,this MDN 2,thisの値はいったい何ですか?一回はっきり言います.3、Javascriptのthisの使い方