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();