{category}

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

bind

バインド(関数

意味 関数にthisを固定


bindとは?

bindメソッドは、指定したthisの値で新しい関数を作成します。

bindの具体的な使い方

関数を特定のオブジェクトにバインドする例

function greet() {
  console.log(`こんにちは、${this.name}さん!`);
}

const person = { name: '太郎' };
const boundGreet = greet.bind(person);

boundGreet();

👇出力結果

こんにちは、太郎さん!

この例では、「greet」関数を「person」オブジェクトにバインドしています。bindを使用することで、関数内のthisが常に指定したオブジェクト(この場合はperson)を参照するようになります。

引数の部分適用

function multiply(a, b) {
  return a * b;
}

const double = multiply.bind(null, 2);
console.log(double(5));
console.log(double(10));

👇出力結果

10
20

bindを使用して引数を部分的に適用することもできます。この例では、multiplyの最初の引数を2に固定した新しい関数doubleを作成しています。

bindに関するよくある質問

Q. bindの主な用途は?
A. bindの主な用途は、関数のthisを特定のオブジェクトに固定することです。これにより、関数が呼び出されるコンテキストに関係なく、常に指定したオブジェクトをthisとして参照できます。
Q. bindとcallの違いは?
A. bindは新しい関数を返しますが、すぐには実行しません。一方、callは関数をすぐに実行します。bindは後で実行するための関数を作成し、callは即座に関数を実行する際に使用します。
Q. bindは引数を固定できる?
A. はい、bindは第二引数以降で関数の引数を固定することができます。これらの引数は、新しく作成された関数が呼び出されるたびに、元の関数に渡されます。

JavaScriptを勉強するのにおすすめな問題集アプリの紹介

楽しくプログラミングを学ぶことで、プログラミングの理解度が深まります。『JavaScript問題集』は、楽しくJavaScriptを学ぶのに最適なアプリです。AIが出題する問題に答えていくことで、自然とJavaScriptの理解度が深まります。

AppStoreからダウンロード:https://apps.apple.com/jp/app/id6737941570

JavaScript問題集

JavaScriptのbindについても学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、JavaScriptのbindやcall、デフォルトパラメータ、iterator、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

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

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」カテゴリーが追加されましました!


関連するそのほかの単語

call

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

種類: 関数の実行コンテキスト

デフォルトパラメータ

初期値を持つパラメータ

種類: パラメータと引数

iterator

繰り返し処理のインターフェース

種類: ジェネレータ関数とイテレータ

case(switch文で使用)

値に応じたアクション

種類: 条件分岐

Promise.all()

複数処理の完了待ち

種類: Promise