es 5とes 6の中で対象に向かう実現

11360 ワード

s 5においてオブジェクト指向を実現することは、構造関数と遠行オブジェクトによって達成される.
			/*es5       ==============*/
			//                
			function Person(name,age){
				this.name = name;
				this.age = age;
			}
			//               
			Person.prototype.show = function(){
				console.log(this.name+" -- "+this.age);
			}
			
			//    
			var p = new Person('jack',18);
			p.show();
			
			//   
			function Student(name,age,job){
				Person.call(this,name,age);
				this.job = job;
			}
			//  student      Person,     Student    
			Student.prototype = new Person();
			//      Student    
			Student.prototype.constructor = Student;
			Student.prototype.showJob = function(){
				console.log(this.job);
			}
			var student = new Student('rose',22,'  ');
			student.show();
			student.showJob();
es 6の後にクラスのキーワードがあったら、構造関数を通してクラスを実現する必要はありません.
			/* es6          ============*/
			class Animal{
				constructor(name,age) {
					this.name = name;
					this.age = age;
				}
				show(){
					console.log(this.name + "--" + this.age);
				}
				jump(){
					console.log('jump is run. ');
				}
			}
			
			var animal = new Animal('dog',12);
			animal.show();
			animal.jump();
			
			/*    */
			class Cat extends Animal{
				constructor(name,age,type){
					super(name,age);//  super              ,   this    
					this.type = type;
				}
				showType(){
					console.log("type: " + this.type);
				}
			}
			
			var cat = new Cat('cat',3,'  ');
			cat.show();
			cat.jump();
			cat.showType();