JavaScript ファンクションの Call
- 前のページ JS 関数呼び出し
- 次のページ JS 関数 Apply
メソッドの再利用
使用 call()
メソッドで、異なるオブジェクト上で使用できるメソッドを書くことができます。
関数はオブジェクトのメソッド
JavaScriptでは、関数はオブジェクトのメソッドです。
関数がJavaScriptオブジェクトのメソッドでない場合、それはグローバルオブジェクトの関数です(前章を参照)。
以下の例では、3つの属性を持つオブジェクトを作成します(firstName
、lastName
、fullName
)。
インスタンス
var person = { firstName:"Bill", lastName: "Gates", fullName: function () { return this.firstName + " " + this.lastName; } } person.fullName(); // 「Bill Gates」として返されます"
fullName属性は、メソッド。personオブジェクトは、このメソッドの所有者。
fullName属性は、 personオブジェクトのメソッド。
JavaScript call() メソッド
call()
メソッドは、事前に定義されたJavaScriptメソッドです。
これは、所有者オブジェクトとしての引数でメソッドを呼び出すために使用できます。
通じて call()
他のオブジェクトのメソッドを使用することもできます。
この例では、personのfullNameメソッドを呼び出し、person1に使用します:
インスタンス
var person = { fullName: function() { return this.firstName + " " + this.lastName; } } var person1 = { firstName:"Bill", lastName: "Gates", } var person2 = { firstName:"Steve", lastName: "Jobs", } person.fullName.call(person1); // 「Bill Gates」として返されます"
この例では、personのfullNameメソッドを呼び出し、person2に使用します:
インスタンス
var person = { fullName: function() { return this.firstName + " " + this.lastName; } } var person1 = { firstName:"Bill", lastName: "Gates", } var person2 = { firstName:"Steve", lastName: "Jobs", } person.fullName.call(person2); // 返却値は "Steve Jobs" になります
引数付きの call() メソッド
call() メソッドは以下の引数を受け入れます:
インスタンス
var person = { fullName: function(city, country) { return this.firstName + " " + this.lastName + "," + city + "," + country; } } var person1 = { firstName:"Bill", lastName: "Gates" } person.fullName.call(person1, "Seattle", "USA");
- 前のページ JS 関数呼び出し
- 次のページ JS 関数 Apply