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 相关文章推荐
判断JavaScript对象是否可用的最正确方法分析
Oct 03 Javascript
理解Javascript_05_原型继承原理
Oct 13 Javascript
游览器中javascript的执行过程(图文)
May 20 Javascript
javascript eval(func())使用示例
Dec 05 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
Apr 30 Javascript
基于javascript实现最简单的选项卡切换效果
May 16 Javascript
Angular的自定义指令以及实例
Dec 26 Javascript
bootstrap实现的自适应页面简单应用示例
Mar 09 Javascript
JS得到当前时间的方法示例
Mar 24 Javascript
基于vue实现分页效果
Nov 06 Javascript
React Hooks的深入理解与使用
Nov 12 Javascript
javascript中导出与导入实现模块化管理教程
Dec 03 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
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
Javascript中的数学函数
2007/04/04 Javascript
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
2007/04/12 Javascript
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
纯js分页代码(简洁实用)
2013/11/05 Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
jquery.post用法示例代码
2014/01/03 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
2014/01/13 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
2014/05/02 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
js时间控件只显示年月
2017/01/08 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
js字符串与Unicode编码互相转换
2017/05/17 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
JS字符串去除连续或全部重复字符的实例
2018/03/08 Javascript
基于JavaScript canvas绘制贝塞尔曲线
2018/12/25 Javascript
vue之延时刷新实例
2019/11/14 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
Python根据区号生成手机号码的方法
2015/07/08 Python
python实现四人制扑克牌游戏
2020/04/22 Python
Python多线程正确用法实例解析
2020/05/30 Python
Python日志打印里logging.getLogger源码分析详解
2021/01/17 Python
CSS3 animation实现逐帧动画效果
2016/06/02 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
2019/02/18 HTML / CSS
美国著名的团购网站:Woot
2016/08/02 全球购物
Linux常见面试题
2016/10/04 面试题
法律进学校实施方案
2014/03/15 职场文书
2014最新版群众路线四风整改措施
2014/09/24 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
python实现ROA算子边缘检测算法
2021/04/05 Python