JavaScriptでのプロトタイプチェーンと継承 – JavaScriptで始めるプログラミング
JavaScriptでのプロトタイプチェーンは、オブジェクト指向プログラミングの重要な概念です。この記事では、プロトタイプチェーンと継承の基本について説明します。
プロトタイプチェーンの基本
JavaScriptのすべてのオブジェクトは、他のオブジェクトからプロパティやメソッドを継承することができます。プロトタイプチェーンの基本的な仕組みは次のとおりです。
- オブジェクトはプロトタイプ(prototype)という特別なプロパティを持つ。
- プロトタイプは自身のプロトタイプを持つことができる。このチェーンはオブジェクトがnullになるまで続く。
Example:const person = { name: 'John' }; const employee = Object.create(person); // employeeはpersonからnameプロパティを継承する console.log(employee.name); // John
このように、プロトタイプチェーンはオブジェクト間の継承を可能にします。さらに、組み込みオブジェクトも同様の仕組みで動作します。
継承の仕組み
JavaScriptでの継承は、原型チェーンを通じて実現されます。たとえば、「Animal」というクラスを「Dog」クラスが継承する場合、次のように記述します。
Example:function Animal(name) { this.name = name; } Animal.prototype.speak = function() { console.log(this.name + ' makes a noise.'); }; function Dog(name, breed) { Animal.call(this, name); this.breed = breed; } Dog.prototype = Object.create(Animal.prototype); Dog.prototype.constructor = Dog; Dog.prototype.speak = function() { console.log(this.name + ' barks.'); };
上記の例では、Dog
クラスはAnimal
クラスからspeak
メソッドを継承しています。さらに、speak
メソッドをオーバーライドすることもできます。
まとめ
JavaScriptのプロトタイプチェーンと継承は、オブジェクト間のプロパティやメソッドの共有を効果的に行えます。公式ドキュメント(外部リンク)を参照し、さらに理解を深めてください。プロトタイプチェーンと継承の理解が深まると、より複雑なJavaScriptのプログラミングも可能となります。