javascript面向对象编程代码


Posted in Javascript onDecember 19, 2011
var orchard = function (){ //基类型构造函数代理 静态方法都在代理函数上 
this.constructor && this.constructor.apply(this,arguments); 
}; 
orchard.extend = function() { 
var parentObj = this; 
var parameters = parentObj.parameters ? 
parentObj.parameters.concat(_.toArray(arguments)) : _.toArray(arguments); 
var thisObj = function(){ //继承类型构造函数代理 
var newparameters = parameters.concat(_.toArray(arguments)); 
this.constructor && this.constructor.apply(this,newparameters); 
}; 
_.extend(thisObj,parentObj); 
_.extend(thisObj.prototype,parentObj.prototype); 
thisObj.parameters = parameters; 
thisObj.base = thisObj.prototype.base = parentObj; //基类型的代理函数 
thisObj.supper = thisObj.prototype.supper = parentObj.prototype; //基类型的构造函数 类成员都在构造函数上 
return thisObj; 
}; 
orchard.define = function(object){ 
if(typeof object === "undefined") object = {constructor: function(){}}; 
this.prototype = object.constructor; 
this.prototype.constructor = this.prototype; 
for(var name in this.base) 
if(typeof this[name] === "undefined") 
this[name] = this.base[name]; 
for(var name in this.supper) 
if(typeof this.prototype[name] === "undefined") 
this.prototype[name] = this.supper[name]; 
for(var i = 0; i < arguments.length; i++) 
_.extend(this.prototype,arguments[i]); 
this.prototype.base = this.base; 
this.prototype.supper = this.supper; 
this.supper = undefined; 
delete this.supper; 
return this; 
}; 
orchard.definenew = function(){ 
var newclass = this.extend(); 
return define.apply(newclass,arguments); 
};

调用:
var Person = orchard.definenew({ 
constructor: function(name){ 
this.name = name; 
}, 
say: function(){ return "Hello, i'm " + name;} 
}); 
var aBen = Person.extend("aBen"); 
aBen.define({ 
constructor: function(){ 
this.supper.apply(this,arguments); 
} 
}); 
var aben = new aBen(); 
alert(aben.say());

思路就是这样的,代码没验证过。分享的思路,大家自己看着办。哈哈~~
Javascript 相关文章推荐
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
Aug 13 Javascript
javascript 文档的编码问题解决
Mar 01 Javascript
基于JavaScript 声明全局变量的三种方式详解
May 07 Javascript
JS基于面向对象实现的放烟花效果
May 07 Javascript
JS组件系列之Bootstrap Icon图标选择组件
Jan 28 Javascript
JS简单测试循环运行时间的方法
Sep 04 Javascript
Bootstrap框架安装使用详解
Jan 21 Javascript
uploader秒传图片到服务器完整代码
Apr 22 Javascript
js编写简单的计时器功能
Jul 15 Javascript
node.js 用socket实现聊天的示例代码
Oct 17 Javascript
Vue的watch和computed方法的使用及区别介绍
Sep 06 Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
Apr 23 Javascript
用jQuery模拟页面加载进度条的实现代码
Dec 19 #Javascript
javascript管中窥豹 形参与实参浅析
Dec 17 #Javascript
jquery focus(fn),blur(fn)方法实例代码
Dec 16 #Javascript
JS获取整个页面文档的实现代码
Dec 15 #Javascript
jQuery版仿Path菜单效果
Dec 15 #Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
Dec 14 #Javascript
js 可拖动列表实现代码
Dec 13 #Javascript
You might like
php中使用websocket详解
2016/09/23 PHP
PHP高并发和大流量解决方案整理
2021/03/09 PHP
Javascript 模式实例 观察者模式
2009/10/24 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
ECMAScript6中Map/WeakMap详解
2015/06/12 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
2016/06/17 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
Vue框架里使用Swiper的方法示例
2018/09/20 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
Python的randrange()方法使用教程
2015/05/15 Python
python计算一个序列的平均值的方法
2015/07/11 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
理解python中生成器用法
2017/12/20 Python
tensorflow: variable的值与variable.read_value()的值区别详解
2018/07/30 Python
Django中多种重定向方法使用详解
2019/07/17 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
简单了解python字符串前面加r,u的含义
2019/12/26 Python
keras 获取某层的输入/输出 tensor 尺寸操作
2020/06/10 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
荷兰度假屋租赁网站:Aan Zee
2020/02/28 全球购物
信息系统专业个人求职信范文
2013/12/07 职场文书
学生打架检讨书1000字
2014/01/16 职场文书
食堂个人先进事迹
2014/01/22 职场文书
党支部换届选举方案
2014/05/08 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
小学运动会入场词
2015/07/18 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android