JS类对象实现继续的几种方式

Posted Yuri 前端什么狮子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS类对象实现继续的几种方式相关的知识,希望对你有一定的参考价值。

0. ES6可以直接使用class,extends来继承.

1.  原型继承

 1       
 2 父类:
 3 
 4       function Persion(name,age){   
 5         this.name = name;   
 6         this.age = age;   
 7        } 
 8  
 9        // 父类的原型对象属性   
10        Persion.prototype.id = 10;  
11 
12 
13        // 子类   
14        function Boy(sex){   
15         this.sex = sex;  
16        }  
17        // 继承实现   
18        Boy.prototype = new Persion(‘Yuri‘,30);  //要初始化父类不优雅~
19        var b = new Boy();  
20  
21         alert(b.name)// Yuri   
22         alert(b.id)//10  

//这种原型继承的特点:既继承了父类的模板,又继承了父类的原型对象。缺点就是父类实例传参,不是子类实例化传参,不符合常规语言的写法。

2、类继承(借用构造函数的方式继承)

//  父类   
function Persion(name,age){   
    this.name = name;   
    this.age = age;   
}  

// 父类的原型对象属性   
Persion.prototype.id = 10;  


// 子类   
function Boy(name,age,sex){   
    //call apply 实现继承  
    Persion.call(this,name,age);  
    this.sex = sex;  
}  

//Boy.prototype = new Persion(); //这个打开那个原型链对象就可以继承了.
var b = new Boy(‘Yuri‘,30,‘男‘); alert(b.name) // Yuri alert(b.id)//undinfind 父类的原型对象并没有继承

//这种原型继承的特点:继承了父类的模板,不继承了父类的原型对象。优点是方便了子类实例传参,缺点就是不继承了父类的原型对象

3. 极简主义

//定义父类
var Person = {
    createNew: function(){
      var person = {};
                 person.name=‘Yuri‘;
      person.sleep = function(){ alert("睡懒觉"); };
      return person;//返返回这个对象
    }
};
//子类
var SuperPerson={
    
      createNew:function(){
             var private; //还可以定义私有属性.
             var  superperson=Person.createNew();
             //superperson就要以使用父类的方法和属性了.
            //同时增加自己的属性
             superperson.fly=function(){}
             superperson.power="";
             return superperson;
      }
}      

var test=SuperPerson.createNew();
//使用子类的createNew就可以实现继承了.
console.log(
test.fly, test.name, test.power)   

没有使用任何的prototype,apply,call

 

 

 

 

以上是关于JS类对象实现继续的几种方式的主要内容,如果未能解决你的问题,请参考以下文章

js-JavaScript常见的创建对象的几种方式

js-JavaScript常见的创建对象的几种方式

JS实现继承的几种方式

JS继承的几种方式

Java实现AOP的几种方式

js原型继承的几种方法