TECH I.S.

JavaScript 関数 bind()


関数の借用

bind()メソッドを使用すると、オブジェクトは別のオブジェクトからメソッドを借用できます。

以下の例では、2 つのオブジェクト (個人とメンバー) を作成します。

member オブジェクトは person オブジェクトから fullname メソッドを借用します。

const person = {   firstName:"John",   lastName: "Doe",   fullName: function () {     return this.firstName + " " + this.lastName;   } } const member = {   firstName:"Hege",   lastName: "Nilsen", } let fullName = person.fullName.bind(member);

自分で試してみる»


thisを保存する

場合によっては、thisをbind()失わないようにするためにメソッドを使用する必要があります。

次の例では、人物オブジェクトに表示メソッドがあります。表示メソッドでは、これはperson オブジェクトを指します。

const person = {   firstName:"John",   lastName: "Doe",   display: function () {     let x = document.getElementById("demo");     x.innerHTML = this.firstName + " " + this.lastName;   } } person.display();

自分で試してみる»

関数がコールバックとして使用される場合、thisは失われます。

この例では、3 秒後に人の名前を表示しようとしますが、代わりにunknownが表示されます。

const person = {   firstName:"John",   lastName: "Doe",   display: function () {     let x = document.getElementById("demo");     x.innerHTML = this.firstName + " " + this.lastName;   } } setTimeout(person.display, 3000);

自分で試してみる»

このbind()方法はこの問題を解決します。

次の例では、bind()メソッドを使用して person.display を person にバインドします。

この例では、3 秒後に人の名前が表示されます。

const person = {   firstName:"John",   lastName: "Doe",   display: function () {     let x = document.getElementById("demo");     x.innerHTML = this.firstName + " " + this.lastName;   } } let display = person.display.bind(person); setTimeout(display, 3000);

自分で試してみる»



thisとは?

JavaScript では、キーワードはオブジェクトthisを指します。

どのthisオブジェクトがどのように呼び出されるか (使用または呼び出されるか)によって決まります。

キーワードthisは、使用方法に応じてさまざまなオブジェクトを指します。


オブジェクトメソッドでは、オブジェクトthisを参照します。
単独でグローバル オブジェクトthisを参照します。
関数では、グローバル オブジェクトthisを参照します。
ストリクト・モードの関数では、thisundefinedです。
イベントでは、thisを参照エレメントイベントを受け取ったものです。
call()apply()bind()などのメソッドは、任意のオブジェクトを参照できます。
thisは変数ではありません。キーワードです。thisの値は変更できません。

JavaScriptこれチュートリアル



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細