JavaScript 関数 call()
メソッドの再利用
このcall()
メソッドを使用すると、さまざまなオブジェクトで使用できるメソッドを作成できます。
すべての関数はメソッドです
JavaScriptでは、すべての関数はオブジェクトメソッドです。
関数が JavaScript オブジェクトのメソッドでない場合、それはグローバル オブジェクトの関数です (前の章を参照)。
以下の例では、lastName、firstName、fullName の 3 つのプロパティを持つオブジェクトを作成します。
例
const person = {
lastName:"山田",
firstName: "太郎",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
// 山田太郎を返します。
person.fullName();
上記の例では、this
はpersonオブジェクトを指します。
this.firstNameは、thisのfirstNameプロパティを意味します。
言い換えると:
this.firstNameは、personのfirstNameプロパティを意味します。
thisとは?
JavaScript では、キーワードはオブジェクトthis
を指します。
どのthis
オブジェクトがどのように呼び出されるか (使用または呼び出されるか)によって決まります。
キーワードthis
は、使用方法に応じてさまざまなオブジェクトを指します。
オブジェクトメソッドでは、オブジェクトthis を参照します。 |
単独で、グローバル オブジェクトthis を参照します。 |
関数内では、グローバル オブジェクトthis を参照します。 |
関数では、strict モードで、this はundefined 。 |
イベントでは、イベントを受け取った要素this を参照します。 |
call() 、apply() 、
bind() などのメソッドは、任意のオブジェクトthis に参照できます。 |
JavaScript call() メソッド
このcall()
メソッドは、事前定義されたJavaScriptメソッドです。
所有者オブジェクトを引数 (パラメーター) としてメソッドを呼び出すことができます。
call()
を使用すると、オブジェクトは別のオブジェクトに属するメソッドを使用できます。この例では、personのfullNameメソッドを呼び出し、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>);
この例では、personのfullNameメソッドを呼び出し、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, "東京", "日本");
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。