var Interface = function(name,methods){ if(arguments.length!=2){ throw new Error("接口必须包含两个参数!"); } this.name=name; this.methods=[]; for(var i=0,len=methods.length;i<len;i++){ if(typeof methods[i]!=='string'){ throw new Error("接口方法名字必须是string类型!"); } this.methods.put(methods[i]); } }; Interface.ensureImplements=function(object){ if(arguments.length!=2){ throw new Error("接口必须包含两个参数!"); } for(var i=1,len=arguments.length;i<len;i++){ var interface=arguments[1]; if(interface.constructor!==Interface){ throw new Error("该方法必须包含两个或两个以上参数!"); } for(var j=0,methodlen=interface.methods.length;j<methodlen;j++){ var method=interface.methods[j]; if(!object[method]||typeof object[method]!='function'){ throw new Error("没有实现"+interface.name+"类的"+method+"方法"); } } } }; 主要是检查接口里边的方法有没有实现。根据接口的思想,检查所有必需的方法。