オブジェクトマスカレーディングによるクラスの継承 ~ JavaScript によるオブジェクト指向プログラミング

クラスの継承の実装、内部変数へのアクセス制御の複雑さの解消など、ES6 以降で解決された問題は多いです。 ES6移行向けに開発可能な場合はなるべく「JavaScript のクラス定義」で紹介した方法で実装されることをお勧めします。

ここでは 関数による継承 (Functional Inheritance) を説明します。 大変自然な方法なので、ぜひ理解し活用したいものです。

以下の例では person クラスを先に定義し、次に student に継承します。 student は person オブジェクトの say_hello を継承するほか、go_school という名前のメソッドを追加しています。

var person = function (n) {
	var name = n;
	return {
		say_hello: function() {
			alert( name );
		}
	};
};

var student = function(n) {
	var that = person(n);
	that.go_school = function() {
		alert('Hi');
	};
	return that;
};

var s1 = student('Ichiro Suzuki');

s1.say_hello();
s1.go_school();

クロージャを理解していれば、コードは簡単に理解できると思います。

実装も簡単ですし、保護したいデータもちゃんと保護されています。 この方法を基本として考えるべきと思います。

JavaScript によるオブジェクト指向プログラミング 目次

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説