Javascript 面向对象编程定义接口的一种方法

  1. //定义一个接口函数  
  2. var Interface = function(interfaceName,interfaceMethods){  
  3.     if(arguments.length!=2){  
  4.         alert("Interface expected  2 arguments,one is for Interface Name, and the other is the Array for methods ")  
  5.     }  
  6.       
  7.     this.interfaceName = interfaceName;  
  8.     this.interfaceMethods = new Array();  
  9.     for(var i = 0;i < interfaceMethods.length;i++){  
  10.         if(typeof interfaceMethods[i] !== "string"){  
  11.             alert("Interface constructor expects each method name to be passed in as a string");     
  12.             break;  
  13.         }  
  14.         this.interfaceMethods.push(interfaceMethods[i])  
  15.     }  
  16. }  
  17.   
  18.   
  19. //检查对象实现接口函数的情况,可以实现多继承,第二个参数为对象数组  
  20. Interface.CheckImplements = function(object,interfaces){  
  21.     if(arguments.length!=2){  
  22.         alert("Interface expected  2 arguments,one is for Interface Name, and the other is the Array for methods ")  
  23.     }  
  24.   
  25.     for(var i=0;i,i<interfaces.length;i++){  
  26.         //alert(interfaces[i])  
  27.         if(interfaces[i].constructor !== Interface){  
  28.             alert("the interface expects to be created from Interface")  
  29.             break;  
  30.         }  
  31.         var interface = interfaces[i];  
  32.         for(var j=0;j<interface.interfaceMethods.length;j++){  
  33.             method = interface.interfaceMethods[j];  
  34.             if(!object[method]||(typeof object[method]!="function")){  
  35.                 alert("object for the method '"+method+ " ' is not found for Interface '"+ interface.interfaceName+ " '")  
  36.                 break;  
  37.             }  
  38.         }  
  39.     }  
  40. }  
posted @ 2015-01-06 10:38  北岛奇诺  阅读(190)  评论(0编辑  收藏  举报