javascript ってやっぱオブジェクト指向なんだな・・・・

prototype を使って継承するんだと思ってたけど、
callを使って簡単にできるんですね。ちょっと感動。
オーバーロードはさすがに無理として
(これを継承と言うなら)多重継承もできちゃいそうだな。

	/* 哺乳類 */
	function Mammal() {
		this.eat = _eat;
		function _eat() {
			alert("Mammal#eat");
		}
		this.sleep = _sleep;
		function _sleep() {
			alert("Mammal#sleep");
		}
	}
	/* 人 */
	function Person() {
		Mammal.call(this,arguments);
		this.speak = _speak;
		function _speak() {
			alert("Person#speak");
		}
		this.walk = _walk;
		function _walk() {
			alert("Person#walk");
		}
	}
	/* 男 */
	function Man() {
		Person.call(this,arguments);
		// オーバーライド
		this.sleep = _sleep;
		function _sleep() {
			alert("Man#sleep");
		}
	}

	var man = new Man();
	man.eat();   // -> Mammal#eat
	man.sleep(); // -> Man#sleep
	man.speak(); // -> Person#speak
	man.walk();  // -> Person#walk