TECH I.S.

JavaScript 関数 call()


メソッドの再利用

このcall()メソッドを使用すると、さまざまなオブジェクトで使用できるメソッドを作成できます。


すべての関数はメソッドです

JavaScriptでは、すべての関数はオブジェクトメソッドです。

関数が JavaScript オブジェクトのメソッドでない場合、それはグローバル オブジェクトの関数です (前の章を参照)。

以下の例では、lastName、firstName、fullName の 3 つのプロパティを持つオブジェクトを作成します。

const person = {   lastName:"山田",   firstName: "太郎",   fullName: function () {     return this.firstName + " " + this.lastName;   } } // 山田太郎を返します。 person.fullName();  

自分で試してみる»

上記の例では、thispersonオブジェクトを指します。

this.firstNameは、thisfirstNameプロパティを意味します。

言い換えると:

this.firstNameは、personfirstNameプロパティを意味します。


thisとは?

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

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

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


オブジェクトメソッドでは、オブジェクトthisを参照します。
単独で、グローバル オブジェクトthisを参照します。
関数内では、グローバル オブジェクトthisを参照します。
関数では、strict モードで、thisundefined
イベントでは、イベントを受け取った要素thisを参照します。
call()apply()bind()などのメソッドは、任意のオブジェクトthisに参照できます。

ノート

thisは変数ではありません。キーワードです。this.の値を変更することはできません。

関連項目:

JavaScriptのthisのチュートリアル


JavaScript call() メソッド

このcall()メソッドは、事前定義されたJavaScriptメソッドです。

所有者オブジェクトを引数 (パラメーター) としてメソッドを呼び出すことができます。


call()を使用すると、オブジェクトは別のオブジェクトに属するメソッドを使用できます。

この例では、personfullNameメソッドを呼び出し、person1に使用します。

const person = {   <strong>fullName</strong>: function() {     return this.firstName + " " + this.lastName;   } } const person1 = {   lastName:"山田",   firstName: "太郎" } const person2 = {   lastName:"山田",   firstName: "花子" } // 「山田太郎」を返します。 person.fullName.call(<strong>person1</strong>);

自分で試してみる»

この例では、personfullNameメソッドを呼び出し、person2に使用します。

const person = {   <strong>fullName</strong>: function() {     return this.firstName + " " + this.lastName;   } } const person1 = {   lastName:"山田",   firstName: "太郎" } const person2 = {   lastName:"山田",   firstName: "花子" } // 「山田花子」を返します。 person.fullName.call(<strong>person2</strong>);

自分で試してみる»

引数付きの call() メソッド

このcall()メソッドは引数を受け入れることができます。

const person = {   fullName: function(city, country) {     return this.lastName + " " + this.firstName + "," + city + "," + country;   } } const person1 = {   lastName:"山田",   firstName: "太郎" } person.fullName.call(person1, "東京", "日本");

自分で試してみる»



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

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

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

スクールの詳細