ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptのメソッド呼び出しとメソッドトリガーのまとめ_基礎知識

JavaScriptのメソッド呼び出しとメソッドトリガーのまとめ_基礎知識

WBOY
WBOYオリジナル
2016-05-16 15:07:591249ブラウズ

js では、this キーワードは興味深いものですが、その方向性は初心者を混乱させることがよくあります。

実際、このキーワードを理解するには、「メソッドの呼び出しとメソッドのトリガー」という 2 つの問題を明確にする必要があります。

次に、コードを見てみましょう

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>function</title>
<script>
function showThis(){
  console.info(this);
}
  
function Test1(){
  this.f=showThis;
}
function Test2(){
  this.f=function(){
    showThis();
  }
}

showThis();//window
new Test1().f();//Test1  
new Test2().f();//window
</script>
</head>
<body>
</body>
</html> 

20行目はwindowオブジェクトを出力しているのでわかりやすいですが、21行目はTest1のインスタンスオブジェクトを出力し、22行目はwindowオブジェクトを出力しています。 Test1 と Test2 の構造を見ると、メソッド f が最終的に showThis メソッドを実行していることがわかりました。しかし、showThis のこの点は異なります。これは、Test1 の f メソッドが showThis を直接ポイントしており、new Test1().f() が Test1 のインスタンスを使用して showThis メソッドを直接呼び出しており、呼び出し元が Test1 のインスタンスであるためです。そして、新しい Test2().f() は、Test2 のインスタンス メソッド f 内のウィンドウ オブジェクトの showThis メソッドをトリガーします。ここで、これはトリガー元 Test2 のインスタンスではなく呼び出し元ウィンドウを指します。

今すぐ見つけられます。これは呼び出し元を指しており、トリガーは呼び出し元に指定されたメソッドを実行するようプッシュするだけです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。