`
mylove2060
  • 浏览: 331115 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

阅读更多
//定义一个接口函数
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;
			}
		}
	}
}




0
0
分享到:
评论

相关推荐

    写给大家看的面向对象编程书(第3版).[美]Matt Weisfeld(带详细书签).pdf

    5.6.3 提供一种复制和比较对象的方法 73 5.6.4 让作用域尽可能小 73 5.6.5 类应当对自己负责 74 5.7 设计时充分考虑可维护性 75 5.7.1 使用迭代 76 5.7.2 测试接口 76 5.8 使用对象持久性 78 5.9 小结 79 ...

    node-js-design-patterns:13 种最流行的面向对象设计模式应用于 Node.js

    13 种最流行的面向对象设计模式应用于 Node.js。 安装 该项目使用Node.js运行。 为您的平台Node.js 源代码或预构建的安装程序 用法 下载或克隆存储库。 每个文件夹都有一个模式的工作示例。 访问选择的模式并运行...

    noflo:基于流JavaScript编程

    在计算机科学中,基于流的编程(FBP)是一种编程范例,将应用程序定义为“黑匣子”进程的网络,该进程通过消息传递在预定义的连接之间交换数据,其中连接是在进程外部指定的。 这些黑匣子进程可以无限地重新连接以...

    java面试宝典

    1、面向对象的特征有哪些方面? 8 2、作用域public,private,protected,以及不写时的区别? 8 3、String 是最基本的数据类型吗? 8 4、float 型float f=3.4是否正确? 8 5、语句float f=1.3;编译能否通过? 8 6、short ...

    XML高级编程

    第2章给了我们基本语法概念,第3章告诉我们如何以一种每个XML编程者都能够理解的方式正规地定义XML词汇表。这些章节提供了理解和使用XML所必需的最基本内容。第4章(关于数据建模)在创建良好的XML结构方面为读者...

    Java语言基础下载

    第三章:面向对象的程序设计 31 学习目标 31 类和对象的描述 32 声明类 32 声明属性 33 声明成员方法 34 源文件的布局 36 包的声明 36 包与目录的布局 38 内容总结 45 独立实践 46 第四章: Java语法基础 47 学习...

    千方百计笔试题大全

    1、面向对象的特征有哪些方面? 8 2、作用域public,private,protected,以及不写时的区别? 8 3、String 是最基本的数据类型吗? 8 4、float 型float f=3.4是否正确? 8 5、语句float f=1.3;编译能否通过? 8 6、short ...

    asp.net知识库

    .NET20 一种简单的窗口控件UI状态控制方法 翻译MSDN文章 —— 泛型FAQ:最佳实践 Visual C# 3.0 新特性概览 C# 2.0会给我们带来什么 泛型技巧系列:如何提供类型参数之间的转换 C#2.0 - Object Pool 简单实现 ...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    9-28 4 javascript面向对象编程 9-28 5 javascript对象存在形式 9-28 6 javascript类与对象 9-28 7 给对象指定成员函数 自定义工厂方法 9-30 1 课程回顾 9-30 2 javascript的闭包 js变量作用域 9-30 3 仿超级玛丽...

    史上最全传智播客PHP就业班视频课,8月份视频

    9-28 4 javascript面向对象编程 9-28 5 javascript对象存在形式 9-28 6 javascript类与对象 9-28 7 给对象指定成员函数 自定义工厂方法 9-30 1 课程回顾 9-30 2 javascript的闭包 js变量作用域 9-30 3 仿超级玛丽...

    精通qt4编程(源代码)

    \ 第11章 事件机制 李立夏介绍了Qt的事件处理模型,详细介绍了在Qt程序设计中处理事件的五种方法,并讨论了如何利用Qt事件机制加快用户界面响应速度。 283 \ 第12章 数据库 李立夏介绍了Qt的数据库处理,重点介绍了...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    9-28 4 javascript面向对象编程 9-28 5 javascript对象存在形式 9-28 6 javascript类与对象 9-28 7 给对象指定成员函数 自定义工厂方法 9-30 1 课程回顾 9-30 2 javascript的闭包 js变量作用域 9-30 3 仿超级玛丽...

    java开源包1

    JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...

    庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术

    2.4.1 调试页面中的javascript脚本(方法一) 22 .2.4.2 调试页面中的javascript脚本(方法二) 23 2.4.3 调试非嵌入式javascript脚本文件 23 2.4.4 调试嵌入式javascript脚本资源文件 24 2.4.5 高效率调试的...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    9-28 4 javascript面向对象编程 9-28 5 javascript对象存在形式 9-28 6 javascript类与对象 9-28 7 给对象指定成员函数 自定义工厂方法 9-30 1 课程回顾 9-30 2 javascript的闭包 js变量作用域 9-30 3 仿超级玛丽...

    精通Qt4编程(第二版)源代码

    QMainWindow 卢传富 Qt应用程序的主窗口是由多个部件/组件构成的框架,本章通过一个简单文本编辑器的例子,介绍了主窗口的菜单、工具条、中心部件、锚接部件和状态条,并通过Qt设计器绘制和手写代码两种方法实现了...

Global site tag (gtag.js) - Google Analytics