博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript 面向对象编程定义接口的一种方法
阅读量:5277 次
发布时间:2019-06-14

本文共 1273 字,大约阅读时间需要 4 分钟。

  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. }  

转载于:https://www.cnblogs.com/ryan1990/p/4205464.html

你可能感兴趣的文章
游标使用
查看>>
LLBL Gen Pro 设计器使用指南
查看>>
SetCapture() & ReleaseCapture() 捕获窗口外的【松开左键事件】: WM_LBUTTONUP
查看>>
Android 设置界面的圆角选项
查看>>
百度地图api服务端根据经纬度得到地址
查看>>
sqlserver计算时间差DATEDIFF 函数
查看>>
用户体验分析: 以 “南通市图书馆微信公众号” 为例
查看>>
输入三个字符,从小到大的顺序输出这三个字符
查看>>
使用SCOM常用的一些ManagementPack
查看>>
SCSS & SASS Color 颜色函数用法
查看>>
【hdoj_2079】选课时间(母函数)
查看>>
Windows10开发手记-RelativePanel使用详解
查看>>
java之jsp页面语法
查看>>
Sql常用语法
查看>>
位操作
查看>>
如何调试NativeSample
查看>>
在 ubuntu下面利用libpcap编程
查看>>
ios不响应presentModalViewController界面的处理
查看>>
Virtualization基础
查看>>
P2344 奶牛抗议
查看>>