新年上班第一天,闲暇之余,看了下jquery作者john resig关于继承的一些idea,顺便自己写了个简单的js继承小框架
/**
* 简单的js继承小框架
* @date 2014/2/8
* @author lsj
*/
(function(){
//基类
this.JClass=function(){
}
//继承方法(创建一个新类继承自该类)
JClass.extend=function(child)
{
var parent=new this;
var superpro=this.prototype;
//将子类的方法赋给父类的原型
for(var item in child)
{
superpro[item]=child[item];
}
//覆盖JClass基类,提供子类初始化方法入口
function JClass()
{
//如果子类有写init方法,则通过该方法进行类初始化
if(this.init)
{
this.init.apply(this,arguments);
}
}
//将子类的原型指向父类的实例(该实例的_proto_指向superpro)
JClass.prototype=parent;
//改变原型的构造函数指向
JClass.prototype.constructor=JClass;
//实现JClass的可继承
JClass.extend=arguments.callee;
return JClass;
}
})();
var Parent=JClass.extend({"name":"zhangsan","age":"10"});
var Child=Parent.extend({init:function(data){this.data=data;},"childname":"this is childname",sayHello:function(){alert(this.data)}});
var cchild=new Child("this is the initial method of child");
console.dir(cchild); //cchild的对象导图
cchild.sayHello(); //打印出this is the initial method of child
分享到:
相关推荐
VC下用MVC框架实现了五子棋程序,可插拔的接口,如果有兴趣可以扩展为更高级的界面。
-目的说明它是在第1,2阶段文档演示的JavaScript面向对象的书写方式的进一步改进,它是现代JavaScript面向对象编程方式(使用基本类来编码)的过渡代码--没有它就没有当今的JS OOP--此人非常牛!!! 4. 最后使用IE...
ajax通用脚本是利用了面向对象的编程用javascript代码把把ajax主要的方法封装好,用的时候只要先set后get就行啦,比框架还容易用,只有一个js文件,导入来就可以用啦,里面还带了一个例子,学过编程的朋友一看就会.....
Monk.Node 是一个免费开源的,快速、简单的面向对象的轻量级Node.JS开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。Monk.Node从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的...
本书内容精炼,示例简单明了,适合各层次面向对象开发人员阅读,也是高校相关专业面向对象课程的理想教学参考书。 第1章 面向对象概念介绍 1 1.1 过程式程序设计与OO程序设计 2 1.2 从过程式开发转向面向对象...
节点授权是一个面向对象的授权框架。 它允许最终用户而不是开发人员来定义授权。 在实际使用案例中,控制可以访问或不访问哪些视图,API或URI就足够了。 我们要求不同的用户对不同的业务对象具有不同的权限。 例如...
如$class,$module,$protocol...globalglobal是Zero的变量管理机制,zero的目标并不包含实现commonjs的规范,$global及其相关关键字方法只是提供一个包管理之外的轻量的对象引用机制,它也不妨碍使用的人使用包管理机制....
KeeperJS,目的以一种亲和Java语法习惯的方式,解决Javascript面向对象的不足,KeeperJS加入了对接口,抽象类的支持,使用起来类似Java习惯。同时进一步丰富Javascript类库,例如KeeperJS实现了Java类库java.util包...
AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以...在不使用任何的js框架的情况下,要想使用ajax,可能需要向下面一样进行代码的编写 <span xss=removed>var xmlHttp = xmlHt
* 基于面向对象编程思想以原生js语言实现, 不依赖任何第三方js库, 未引用任何外部代码片段! 跨浏览器全兼容 * * 【调用】 * 根据实际需求配置不同参数灵活调用,无参数时使用默认配置 * 静态方法用于框架内部和...
SceneGraph.js, HTML5 Canvas 和动画框架 SceneGraph.jsSceneGraph.js 是面向HTML5的面向对象对象,它是一个功能强大且非常面向对象的场景图形框架,它是为了简化应用程序和游戏的开发而在HTML5中实现的。...
本文实例讲述了Javascript面向对象程序设计链式调用。分享给大家供大家参考,具体如下: 1.链式调用: jquery可能是目前大家最常用到的js框架了,也习惯了如下的调用方式: $('.someclass').show().css('xxx','xxxx'...
前端框架, 包含各种样式介绍, 使用angular.js实现的后台管理的框架, 用面向对象的思想搭建的web前端框架,可用于大型网站后台管理系统
火龙果软件工程技术中心 数据分页显示,是很普遍的需求,传统的实现大多是基于服务器端导航的,这种设计采用同步方式进行数据传输,用户体验很差。下面是我在学习ajax的过程中,实现的一个解决方案,不知道设计得...
在prototype框架中的类继承实现机制 代码如下: //为Object类添加静态方法:extend Object.extend = function(destination, source) { for(property in source) { destination[property] = source[property];...
在prototype.js中,prototype对象是实现面向对象的一个重要机制。 每个函数就是一个对象(Function),函数对象都有一个子对象 prototype对象,类是以函数的形式来定义的。prototype表示该函数的原型,也表示一...
Java是一种面向对象的编程语言,具有跨平台、安全性高、易于维护等特点,广泛应用于企业级应用开发。 Springboot框架介绍 Springboot是Spring的一个子项目,可以简化Spring应用的初始搭建和开发过程,提供快速构建...
在prototype.js中,prototype对象是实现面向对象的一个重要机制。 每个函数就是一个对象(Function),函数对象都有一个子对象 prototype对象,类是以函数的形式来定义的。prototype表示该函数的原型,也表示一个类...
面向对象编程:JavaScript支持面向对象编程范式,可以使用构造函数和原型链来定义和扩展对象。但它也是一门多范式语言,支持函数式编程和事件驱动编程。 动态类型:JavaScript是一种动态类型语言,变量无需声明类型...