//定义一个接口函数 var Interface = function(interfaceName,interfaceMethods){ if(arguments.length!=2){ alert("Interface expected 2 arguments,one is for Interface Name, and the other is the Array for methods ") }
this.interfaceName = interfaceName; this.interfaceMethods = new Array(); for(var i = 0;i < interfaceMethods.length;i++){ if(typeof interfaceMethods[i] !== "string"){ alert("Interface constructor expects each method name to be passed in as a string"); break; } this.interfaceMethods.push(interfaceMethods[i]) } }
//检查对象实现接口函数的情况,可以实现多继承,第二个参数为对象数组 Interface.CheckImplements = function(object,interfaces){ if(arguments.length!=2){ alert("Interface expected 2 arguments,one is for Interface Name, and the other is the Array for methods ") }
for(var i=0;i,i<interfaces.length;i++){ //alert(interfaces[i]) if(interfaces[i].constructor !== Interface){ alert("the interface expects to be created from Interface") break; } var interface = interfaces[i]; for(var j=0;j<interface.interfaceMethods.length;j++){ method = interface.interfaceMethods[j]; if(!object[method]||(typeof object[method]!="function")){ alert("object for the method '"+method+ " ' is not found for Interface '"+ interface.interfaceName+ " '") break; } } } }
[code="js"]//定义一个接口函数var Interface = function(interfaceName,interfaceMethods){ if(arguments.length!=2){ alert("Interface expected 2 arguments,one is for Interface Name, and the other is the ...