JavaScriptでの継承

JavaScript(ECMAScript)は、Prototypeベースのオブジェクト指向なので、継承を使いたい場合、Prototypeを設定すると属性を共有できるようになる。自身にその属性がない場合、prototypeの同属性を自動的に探しに行く仕組みのことである。

function Foo() {
}
// Fooはnameプロパティを持ったObjectを継承
Foo.prototype = {
  name : "Foo",
};

function Bar() {
}
// BarはFooを継承
Bar.prototype = new Foo();

alert(new Bar().name);

Prototypeに設定するオブジェクトは、「コンストラクタのprototypeメンバー」に置く。間違えやすいのは、オブジェクトそのもののprototypeメンバーに置いたり、prototypeにコンストラクタそのものを代入したりすること。