JavaScriptでの継承

ECMAScript 5からObject.createというメソッドが追加されてインスタンスからの継承が書きやすくなったようだ。

参考: ECMAScript 5 Part 1: Reusable Code – IEBlog – Site Home – MSDN Blogs

ES5以前はクラスを定義するためにコンストラクタをつくっておいて、そのprototypeスロットに継承元のオブジェクトをセットしてからnew演算子を適用していた。

var appointment = {
    name: "unnamed appointment",
    startTime:  new Date(NaN),
    endTime:  new Date(NaN),
    location: "unknown"
};

function Appointment(){};
Appointment.prototype = appointment;
var myAppointment = new Appointment();

ES5で追加されたObject.createを使うと、上記最後の3行と同じ意味となる。

 var myAppointment = Object.create(appointment);

Prototypal Inheritanceを言語仕様で取り込んだと言うことだね。

Object.createnewの関係は「Yet Another…: JavaScriptのオブジェクト指向は、逆の順番で学んだほうが理解しやすいと思うので…」がわかりやすかった。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です