call メソッドは、指定された this 値と指定されたいくつかのパラメーター値を使用して関数またはメソッドを呼び出します。
注: この関数の構文は apply() メソッドの構文とほぼ同じですが、唯一の違いは apply() メソッドがパラメーター配列を受け入れることです。呼び出し () メソッドはパラメータのリストを受け取ります。
これら 2 つのメソッドの概念を理解した後、それらのアプリケーションを段階的に理解してみましょう。
メソッド内の this のポインタを変更します
まずは次の例を見てみましょう
var name = "编程的人"; var age = 1; var person = { name:"公众号:bianchengderen", age:20 } function say(){ console.log("我叫:"+this.name+",年龄:"+this.age) } say();// 我叫: 编程的人,年龄: 1 say.call(person);//年龄:20
これら 2 つの呼び出しの実行メソッドは異なり、その結果も異なります。違いは、say メソッドの this が異なるオブジェクトを指しており、呼び出しモードで実行されることです。 Say メソッドでこれを person オブジェクトにポイントします。
これはちょっと他人のふりをしているような気がしませんか? もちろん、自分に何ができるかをもっと考えてみましょう。
継承メカニズムの実装
継承、これは高度なオブジェクト指向の機能です。呼び出しを使用すると、JAVASCRIPT を使用してこの機能を実現できます。
次の例を見る前に、上の例をよく理解しておく必要があります。
function Person(){ this.name = "编程的人"; this.age = 20; } function Student(){ Person.call(this); this.school = "地球"; } var student = new Student(); //下面打印出来: 编程的人,20,地球 console.log(student.name,student.age,student.school);
この例では、Student 関数は person.call(this) によって実装される person の名前と年齢の属性を継承します。したがって、Student が person の特性を持っていることを理解するのは難しくありません。 this.school.
など、独自の個性を持っています。ここでは、渡すパラメーターを追加する必要はありません。コードを試して、それがどのように機能するかを確認してください。
まずこれら 2 つの例について話してから、詳しく調べてみましょう。