{category}

JavaScript - 関数の実行コンテキスト

call

コール(関数

意味 関数を別のオブジェクトに適用


callとは?

callメソッドを使用すると、関数を特定のオブジェクトに属するかのように実行できます。これにより、第一引数で指定されたオブジェクトが関数内の'this'になります。

callの具体的な使い方

callメソッドを使用して関数のコンテキストを変更する例

<button onclick="greet.call(person, 'こんにちは')">callメソッドの例を表示</button>
<script>
function greet(prefix) {
    alert(`${prefix}、${this.name}さん!`);
}

const person = {
    name: '佐藤'
};
</script>

この例では、'greet'関数を'person'オブジェクトのコンテキストで実行しています。'call'を使うことで、'this.name'が'person.name'を参照するようになります。

callメソッドを使用してメソッドを借用する例

const numbers = [1, 2, 3, 4, 5];
const letters = ['a', 'b', 'c', 'd', 'e'];

console.log('numbers:', numbers.toString());
console.log('letters:', Array.prototype.toString.call(letters));

// メソッドの借用
const obj = { 0: 'x', 1: 'y', 2: 'z', length: 3 };
console.log('obj as array:', Array.prototype.toString.call(obj));

👇出力結果

numbers: 1,2,3,4,5
letters: a,b,c,d,e
obj as array: x,y,z

callを使用して、配列のtoStringメソッドを他のオブジェクトに適用します。これにより、配列のようなオブジェクトを文字列として表現できます。

callに関するよくある質問

Q. callとapplyの違いは?
A. callは引数を個別に渡しますが、applyは引数を配列として渡します。使用する状況に応じて選択します。
Q. callの第一引数にnullを使う場合は?
A. thisの値を特に指定する必要がない場合、nullを使用します。この場合、関数内のthisはグローバルオブジェクト(ブラウザではwindow)を指します。
Q. callはどんな時に使う?
A. メソッドを借用したい時や、特定のオブジェクトのコンテキストで関数を実行したい時に使用します。また、可変長引数を持つ関数を呼び出す際にも便利です。

callが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、JavaScriptのcallや即時実行関数、残余引数 (...args)、匿名関数、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


JavaScriptを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!JavaScriptはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

即時実行関数

すぐに実行される関数

種類: 関数の種類

残余引数 (...args)

引数をまとめて受け取る

種類: パラメータと引数

匿名関数

名前のない関数

種類: 関数の種類

load

ページが完全に読み込まれたときのイベント。

種類: ウィンドウとフレームイベント

switch

複数条件の分岐

種類: 条件分岐