`
mylove2060
  • 浏览: 331110 次
  • 性别: 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;
			}
		}
	}
}

var PersonInterface = new Interface("PersonInterface",["display","walk","eat","shout"])  //定义一个接口

var Person = function(){
	
	this.display = function(){
		
	}

	this.eat = function(){
		
	}

	this.shout = function(){
		
	}
}
 person = new Person();
 Interface.CheckImplements(person,[PersonInterface]) 
//会弹出对话框object for the method 'walk ' is not found for Interface 'PersonInterface '

//注明,这似乎要在Person对象被创建后才能检测,这相当于后绑定,用一个函数来检测,这似似乎是一个缺陷,如何使用早期绑定,这正是要研究的一个题目。
分享到:
评论

相关推荐

    JavaScript面向对象中接口实现方法详解

    本文实例讲述了JavaScript面向对象中接口实现方法。分享给大家供大家参考,具体如下: 接口是面向对象编程的基础,它是一组包含了函数型方法的数据结构,与类一样,都是编程语言中比较抽象的概念。比如生活中的接口...

    《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析

    本文实例讲述了Javascript面向对象程序设计工厂模式。分享给大家供大家参考,具体如下: 工厂模式和单例模式(https://www.jb51.net/article/184230.htm)应该是设计模式中应用最多的模式了,工厂模式的定义:提供...

    Javascript面向对象扩展库(lang.js)

    lang.js是Javascript面向对象编程的扩展库,支持包、类的定义和函数重载等功能,接口简洁规范,易用性强,压缩包内包含文档示例和带注释的源码,欢迎下载试用。

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

    2.2 设计接口时使用抽象思维 33 2.3 尽可能为用户提供最小接口 35 2.3.1 确定用户 35 2.3.2 对象行为 36 2.3.3 环境约束 36 2.3.4 明确公共接口 36 2.3.5 明确实现 37 2.4 小结 37 2.5 参考书目 38 第3章 ...

    javascript 面向对象编程 function是方法(函数)

    要我说,只要把具体实现给打包,对外提供调用接口那就是封装,方法也好、类也好就做了这些事。  javascript中的function可以用来创建方法、也可以用来创建类,实际上我们可以认为是用function来模拟出的类(说到类...

    学习javascript面向对象 理解javascript对象

    面向对象:对象作为程序的基本单元,程序分解为数据和相关操作 二、类、对象 类:对具有相同特性和特征事物的抽象描述 对象:某种类型对应的具体事物 三、面向对象的三大特性 封装:隐藏实现细节,实现代码模块化 继承...

    JavaScript面向对象之七大基本原则实例详解

    主要介绍了JavaScript面向对象之七大基本原则,结合实例形式详细分析了JavaScript面向对象七大基本原则,包括单一职责、开闭原则、里氏替换、依赖倒置、接口隔离、迪米特法则及组合/聚合复用原则,需要的朋友可以参考下

    深入理解JavaScript系列

    深入理解JavaScript系列(18):面向对象编程之ECMAScript实现 深入理解JavaScript系列(19):求值策略 深入理解JavaScript系列(20):《你真懂JavaScript吗?》答案详解 深入理解JavaScript系列(21):S.O.L....

    tangramjs:在 JavaScript 中用于无类面向对象编程的库

    七巧板一个用于 JavaScript 中无类面向对象编程的库。 我曾经认为 JavaScript 的重要创新是原型继承。 我现在认为它是无类的面向对象编程。 我认为这是 JavaScript 给人类的礼物。 这就是使它真正有趣、特别和重要的...

    深入理解JavaScript系列(.chm)

    深入理解JavaScript系列(18):面向对象编程之ECMAScript实现 深入理解JavaScript系列(19):求值策略 深入理解JavaScript系列(20):《你真懂JavaScript吗 》答案详解 深入理解JavaScript系列(21):S O L I...

    面向对象的Javascript之二(接口实现介绍)

    接口是面向对象Javascript工具箱中最有用的特性之一。我们都知道GOF在设计模式中说到:面向接口编程,而非面向实现编程

    Javascript-DOM:文档对象模型(DOM)是HTML和XML文档的编程接口。 它代表页面,以便程序可以更改文档的结构,样式和内容。 ... DOM是网页的面向对象的表示形式,可以使用诸如JavaScript之类的脚本语言进行修改。

    Javascript-DOM 文档对象模型(DOM)是HTML和XML文档的编程接口。 它代表页面,以便程序可以更改文档的结构,样式和内容。... DOM是网页的面向对象的表示形式,可以使用诸如JavaScript之类的脚本语言进行修改。

    JS Pro-深入面向对象的程序设计之继承的详解

    一般的面向对象程序语言,有两种继承方法——接口继承(interface inheritance)和实现继承(implementation inheritance)。接口继承只继承方法签名,而实现继承则继承实际的方法。在JavaScript中,函数没有签名,...

    Json概念及jsoncpp编程接口说明

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。...Jsoncpp是一个使用C++语言实现的面向对象的json库,以静态库的形式提供,使用非常简单。 Jsoncpp提供的接口中有3个核心类:Reader、Writer、Value。

    浅谈JavaScript中的接口实现

    没有内置的创建或实现接口的方法,也没有可以判断一个对象是否实现了与另一个对象相同的一套方法,这使得对象之间很难互换使用,好在JavaScript拥有出色的灵活性,这使得模拟传统面向对象的接口,添加这些特性并非...

    深入理解JavaScript系列.chm

    18.面向对象编程之ECMAScript实现 19.求值策略 20.《你真懂JavaScript吗?》答案详解 21.S.O.L.I.D五大原则之接口隔离原则ISP 22.S.O.L.I.D五大原则之依赖倒置原则DIP 23.JavaScript与DOM(上)——也适用于新手 24....

    JavaScript王者归来part.1 总数2

     1.7 学习和使用JavaScript的几点建议   1.8 关于本书的其余部分   第2章 浏览器中的JavaScript  2.1 嵌入网页的可执行内容   2.2 赏心悦目的特效   2.3 使用JavaScript来与用户交互  2.4 绕开脚本陷阱 ...

    JavaScript接口实现代码 (Interfaces In JavaScript)

    接口是面向对象编程里的重要特性,遗憾的是JavaScript并没有提供对接口的支持!怎么实现接口呢?

    JS 函数式编程指南

    虽然面向对象编程(Object-oriented programing)主导着业界,但很明显这种范式在 JavaScript 里非常笨拙,用起来就像在高速公路上露营或者穿着橡胶套鞋跳踢踏舞一样。我们不得不到处使用 bind 以免 this 不知不觉地...

Global site tag (gtag.js) - Google Analytics