interlude

プログラミングや私的なこと

プロトタイプについて調べた

プロトタイプとは概念のことです。
javascriptはクラスの継承という考え方がないので
プロトタイプチェーンを用いてプロパティを参照するということをしています。どういうことかというと
親と子がいて、親の能力は子供も使うことが可能。さらにその子供もおじいちゃんの能力を使えるとします。このときプロトタイプチェーンは遺伝子の役割を果たしています。
そして能力のことをプロパティといいます。
親が"たくましさ"というプロパティを持っていて、孫がそのプロパティを参照する流れを図にすると
親(たくましさ)<-子<-子という具合になります。

実際にjavascriptで書くと以下になります。

//親オブジェクト
function Dad() {}
Dad.prototype.a = 'たくましさ';
//子オブジェクトが親の遺伝子を引き継ぐ
var child = function() {}
child.prototype = new Dad();
//子オブジェクトが改名する
var sample_obj = new child();

console.log(sample_obj.a);//"たくましさ"と表示される

クラスベースとプロトタイプベースの違いについても調べてみます。