JavaScript

this

 編集:2022.07.30 by T.A.

オブジェクトの名前を呼び出す。

this

値は、非厳格モードでは、実行コンテキスト(グローバル、関数、eval)のプロパティで、常にオブジェクトへの参照です。厳格モードではどのような値でも取り得ます。

グローバル実行コンテキスト(すべての関数の外側)では、厳格モードであるかどうかにかかわらず、this はグローバル オブジェクトを参照します:

// ウェブ ブラウザーでは window オブジェクトもグローバル オブジェクトです。
D=this === window;	//=true
a=37;
D=window.a;	//=37
this.b="MDN";
D=window.b;	//="MDN"
D=b;	//="MDN"

メモ: コードが実行されている現在のコンテキストに関係なく、グローバルの globalThis プロパティを使用していつでも簡単にグローバル オブジェクトを取得できます。

関数内での this の値は、関数の呼び出され方によって異なります。
下記のコードは厳格モードではないため、また呼び出し時に this の値が設定されないため、this は既定でグローバル オブジェクトとなり、これはブラウザーでは window です:

function f1() {
  return this;
}

// ブラウザー上で
D=f1() === window;	//=true

// Node 上で
D=f1() === global;	//=true

ただし厳格モードでは、実行コンテキストに入るときに this 値が設定されていないと、以下の例のように undefined のままになります:

function f2() {
  'use strict'; // 厳格モードにする
  return this;
}

D=f2() === undefined;	//=true

HTML:

<SCRIPT><!--
function Name(n){
  alert("入力された名前は"+n+"はです")
}
//--></SCRIPT>
<INPUT type=text name="名前" onblur="Name(this.value)" value="">

テスト