「コンテキスト」という言葉が何を指しているのかよく分からない


様々な技術系の記事やドキュメントで「コンテキスト」という言葉がでてきますが、何を指しているのかよく分かりません。
「コンテキスト」という言葉自体は調べたのですが、利用されている状況によって意味が異なるため、結局何を指しているのか理解ができないです。

例えば、以下の記事やドキュメントの「コンテキスト」が何を指しているのかが分からないです。

  * <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this>   
「Global context」  
「Function context」

  * <https://jp.vuejs.org/api/>   
「this コンテキストを持ちます。」

上記の「コンテキスト」が何を指しているか教えていただけますか。  
また、「コンテキスト」を別の言葉で言い換えることはできますか?

そもそも「コンテキスト」という言葉自体が曖昧(だと思ってる)なため、  
回答しづらい質問で申し訳ありませんが、よろしくお願いいたします。

* * *

今回の質問は人によって回答が異なるものだと想定しています。そのため、できる限り多くの方々の意見・回答を見るために、以下のサイトにも同様の質問を投稿しています。

<https://teratail.com/questions/53738>

結果として4人の方から回答をいただくことができました。どの回答も非常にためになり、イメージを掴むことができたため解決にしました。




家族同士でお互いの名前を呼ぶ場合、名字を使う事はまずありません。  
それは名字が家族にとって自明であり、これをコンテキストとしているからです。

Windowsでファイルを右クリックしてコンテキストメニューを表示し、「開く」メニューをクリックする時は通常「(ファイル名)を開く」とは書いていません。単に「開く」と書かれているだけです。  
そのファイルを右クリックしているため、開く目的のファイル名は自明であり、これをコンテキストとしているからです。

`Global context`とは、`this`がグローバルオブジェクトとなっているコード上の位置を示しています。  
グローバルに定義された`myFunc`はグローバルコンテキストにおいてそれがグローバルである事を明示せずに`myFunc()`と呼び出すことができます。

対照的に`Function context`では、`this`がその関数の呼び出し元のオブジェクトを指すコードの位置を示しています。

ですので:

コンテキスト = 背景となる情報  
〜コンテキストを持つ = 〜という背景が定義されている

あたりが妥当なんではないかと思います。




家族同士でお互いの名前を呼ぶ場合、名字を使う事はまずありません。  
それは名字が家族にとって自明であり、これをコンテキストとしているからです。

Windowsでファイルを右クリックしてコンテキストメニューを表示し、「開く」メニューをクリックする時は通常「(ファイル名)を開く」とは書いていません。単に「開く」と書かれているだけです。  
そのファイルを右クリックしているため、開く目的のファイル名は自明であり、これをコンテキストとしているからです。

`Global context`とは、`this`がグローバルオブジェクトとなっているコード上の位置を示しています。  
グローバルに定義された`myFunc`はグローバルコンテキストにおいてそれがグローバルである事を明示せずに`myFunc()`と呼び出すことができます。

対照的に`Function context`では、`this`がその関数の呼び出し元のオブジェクトを指すコードの位置を示しています。

ですので:

コンテキスト = 背景となる情報  
〜コンテキストを持つ = 〜という背景が定義されている

あたりが妥当なんではないかと思います。

