クラスを定義するために使用している空の関数の役割を教えてください。
いつもお世話になっています。
下記の質問についてご存知の方がいらっしゃいましたら、ご教示を願います
【質問の主旨】
下記のコードにおいて、var Person = function() {};
はどのような役割を指定のでしょうか?
var Person = function() {};
Person.prototype = {
eat: function() {
console.log('もぐもぐと食べる');
}
};
var BusinessPerson = function() {
Person.call(this);
};
BusinessPerson.prototype = new Person();
BusinessPerson.prototype.work = function() {
console.log('せっせ、せっせと働く');
};
var bp = new BusinessPerson();
bp.eat(); // もぐもぐと食べる
bp.work(); // せっせ、せっせと働く
【質問の補足】
1.
var Person = function() {};
はプロパティもメソッドも定義されていません。Personがクラスであることを示すためだけに、空の関数を定義しているだけであると解釈しても差し支えはないでしょうか?
2.
var Person = function() {};
をコメントアウトすると、
Uncaught ReferenceError: Person is not defined es5_proto_chain.js:3
というエラーが表示されます。
以上、ご確認よろしくお願いします。