`
angun123
  • 浏览: 9517 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JavaScript设计模式之实现类继承的两种方法

 
阅读更多

首先介绍用非常类似java和C++中的方法来实现类的继承。利用JavaScript的函数来声明类,然后用new关键字来实例化对象。暂时叫它classical继承方法吧。

相信大多数的java和c++程序员来说上面的例子非常容易就可以理解。下面我们来看另一种方法用原型来实现类的继承。我们可以叫它prototypal继承。

这种方法对于很多第一次接触prototype的程序员来说是比较难以理解的。这个例子中我们没有定义化类似类的结构,仅仅定义了原型对象。由于有原型对象的存在,所以这些原型对象能够被其它的新对象运用。

总结:第一种方法很容易理解,所以在这种方法是最常见的。如果你希望的的javascript框架能够被广泛使用,你最好的选择就是第一种方法了,因为不是所有的程序员都能够很好的理解prototype的机制的。第二种方法优点就是是占用内存少,因为所有的clone对象都共用属性和方法,同时它很易用,只用调用一下clone就实现了类的继承,一句话因为简单所以强大。

分享到:
评论

相关推荐

    asp.net知识库

    在ASP.Net中两种利用CSS实现多界面的方法 如何在客户端调用服务端代码 页面一postback,它就显示页面的最顶端,怎样让它定位在某一位置? 如何保证页面刷新后的滚动条位置 清除网页历史记录,屏蔽后退按钮! 如何传值...

    千方百计笔试题大全

    98、Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 22 99、说下Hibernate的缓存机制 22 100、Hibernate的查询方式 23 101、如何优化Hibernate? 23 102、Struts工作机制?为什么要使用Struts? 23 ...

    java面试宝典

    98、Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 22 99、说下Hibernate的缓存机制 22 100、Hibernate的查询方式 23 101、如何优化Hibernate? 23 102、Struts工作机制?为什么要使用Struts? 23 ...

    python入门到高级全栈工程师培训 第3期 附课件代码

    03 re模块之方法 04 re模块总结 05 logging模块 06 re模块补充 07 configparse模块 08 hashlib模块 09 计算器作业以及思路 10 模块导入补充 第24章 01 面向对象设计 02 类相关知识 03 对象相关知识 04 类属性增删...

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

    2.3.2 设计模式下的调试方法 20 2.4 javascript脚本调试方法 22 2.4.1 调试页面中的javascript脚本(方法一) 22 .2.4.2 调试页面中的javascript脚本(方法二) 23 2.4.3 调试非嵌入式javascript脚本文件 23 ...

    写给大家看的面向对象编程书(第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 ...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    2.1.2多窗口浏览器模式实现机制 13 2.3 模块实现 13 2.3.1类浏览器模式 13 2.3.2多窗口类浏览器模式 14 2.4 本章小结 15 第三章 跨域交互缓存处理设计 17 3.1 跨域交互缓存处理需求 17 3.1.1 缓存技术WebStorage 17 ...

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

    2.3.2 设计模式下的调试方法 20 2.4 javascript脚本调试方法 22 2.4.1 调试页面中的javascript脚本(方法一) 22 .2.4.2 调试页面中的javascript脚本(方法二) 23 2.4.3 调试非嵌入式javascript脚本文件 23 ...

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

    2.3.2 设计模式下的调试方法 20 2.4 javascript脚本调试方法 22 2.4.1 调试页面中的javascript脚本(方法一) 22 .2.4.2 调试页面中的javascript脚本(方法二) 23 2.4.3 调试非嵌入式javascript脚本文件 23 ...

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

    2.3.2 设计模式下的调试方法20 2.4 javascript脚本调试方法22 2.4.1 调试页面中的javascript脚本(方法一)22 .2.4.2 调试页面中的javascript脚本(方法二)23 2.4.3 调试非嵌入式javascript脚本文件23 2.4.4 ...

    最新Java面试宝典pdf版

    28、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 21 29、super.getClass()方法调用 21 30、String是最基本的数据类型吗? 22 31、String s = "Hello...

    Java面试笔试资料大全

    28、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 21 29、super.getClass()方法调用 21 30、String是最基本的数据类型吗? 22 31、String s = "Hello...

    Java面试宝典2012版

    13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案怎么配置? 123 15、spring+Hibernate中委托方案怎么配置? 123 16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集...

    Java面试宝典-经典

    28、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 21 29、super.getClass()方法调用 21 30、String是最基本的数据类型吗? 22 31、String s = ...

    Java面试宝典2012新版

    28、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 21 29、super.getClass()方法调用 21 30、String是最基本的数据类吗? 22 31、String s = ...

    JAVA面试宝典2010

    28、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 21 29、super.getClass()方法调用 21 30、String是最基本的数据类型吗? 22 31、String s = "Hello...

    java面试题大全(2012版)

    28、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 21 29、super.getClass()方法调用 21 30、String是最基本的数据类型吗? 22 31、String s = "Hello...

    java面试宝典2012

    28、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 23 29、super.getClass()方法调用 23 30、String是最基本的数据类型吗? 24 31、String s = "Hello...

Global site tag (gtag.js) - Google Analytics