JavaScript prototypeとは?基本と実践的な使い方
JavaScriptにおいて、全ての関数はprototypeプロパティを持っており、これを使って関数のインスタンスオブジェクトに属性やメソッドを追加することができます。具体的には、関数のprototypeプロパティに値を割り当てることで、その関数のインスタンスオブジェクトに属性やメソッドを追加することができます。
例えば、以下のようにコンストラクタを定義し、メソッドを追加することができます。
function Person(name, age) {
this.name = name;
this.age = age;
}
// 为Person构造函数的实例对象添加一个greet方法
Person.prototype.greet = function() {
console.log("Hello, my name is " + this.name);
};
// 创建Person构造函数的实例
var person1 = new Person("Alice", 25);
var person2 = new Person("Bob", 30);
// 调用实例对象的greet方法
person1.greet(); //输出:Hello, my name is Alice
person2.greet(); //输出:Hello, my name is Bob
上記の例では、Personというコンストラクタ関数を定義し、そのprototypeプロパティに値を割り当てることで、インスタンスオブジェクトにgreetメソッドを追加しました。 Personコンストラクタ関数のインスタンスを作成し、インスタンスのgreetメソッドを呼び出すことで、各インスタンスがこのメソッドにアクセスできることがわかります。
prototypeを使用して追加されたプロパティやメソッドは共有されるため、そのコンストラクタのすべてのインスタンスがこれらのプロパティやメソッドを共有します。