js定义接口以及实现

先定义一个含有name属性,并且由setName和getName方法的接口 

  function Animal(son){
       //声明一个接口姓名属性
        this.name;
       //声明一个设置名字接口函数
        this.setName;
      //声明一个获取姓名接口函数
        this.getName;
      //进行判断子类是否实现接口方法
         if(son!='undefined'){
             var c=new son();
           if( !c.hasOwnProperty('setName')||!c.hasOwnProperty('getName')){
              if(!(typeof p.getName==='function')||!(typeof 
                 p.setName==='function')){
                     throw new Error("子类"+son.name+",没有实现接口方法");
                        
                 }
              }
                   
          }       
                
    }
         

定一个类

 function People(){
 }
                

 进行实现接口

 var p=new People;
    
 People.prototype=new Animal(People); 

由于该实现类People没有重写接口的方法因此会导致运行时失败,

将抛出异常。

重新定义实现类

 function People(){
      this.setName;
      this.getName;
 }

  var p=new People;
    
 People.prototype=new Animal(People); 

这样也会报错,因为定义的setName和getName不是函数

所以我们可以这样定义实现类

function People(){
   this.setName=function(){}
   this.getName=function(){}
 }

  var p=new People;
    
 People.prototype=new Animal(People); 

运行通过 

这就是一个简单的定义接口以及接口运行时检查是否被实现的例子

发布了28 篇原创文章 · 获赞 16 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/sunboylife/article/details/103796531