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 相关文章推荐
基于jquery的修改当前TAB显示标题的代码
Dec 11 Javascript
Knockoutjs的环境搭建教程
Nov 26 Javascript
js 弹出框只弹一次(二次修改之后的)
Nov 26 Javascript
利用css+原生js制作简单的钟表
Apr 07 Javascript
使用Curl命令查看请求响应时间方法
Nov 04 Javascript
JS实现鼠标移上去显示图片或微信二维码
Dec 14 Javascript
assert()函数用法总结(推荐)
Jan 25 Javascript
在 React、Vue项目中使用SVG的方法
Feb 09 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
Sep 23 Javascript
echarts实现折线图的拖拽效果
Dec 19 Javascript
javascript 设计模式之享元模式原理与应用详解
Apr 08 Javascript
vue实现拖拽交换位置
Apr 07 Vue.js
用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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
2015/03/03 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
jquery validate表单验证插件
2016/09/06 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
JavaScript定时器使用方法详解
2020/03/26 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
[01:28]一分钟告诉你DOTA2 TI9不朽宝藏Ⅱ中有什么!
2019/07/09 DOTA
Python中关于Sequence切片的下标问题详解
2017/06/15 Python
使用Eclipse如何开发python脚本
2018/04/11 Python
基于anaconda下强大的conda命令介绍
2018/06/11 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
基于wxPython的GUI实现输入对话框(1)
2019/02/27 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
解决python 3 urllib 没有 urlencode 属性的问题
2019/08/22 Python
Python实现微信好友的数据分析
2019/12/16 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
浅析PyCharm 的初始设置(知道)
2020/10/12 Python
使用CSS实现弹性视频html5案例实践
2012/12/26 HTML / CSS
韩国现代百货官网:Hmall
2018/03/21 全球购物
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
this关键字的含义
2015/04/08 面试题
应届生求职信写作技巧
2013/10/24 职场文书
公司晚会策划方案
2014/05/17 职场文书
2015年保险公司工作总结
2015/04/24 职场文书
芙蓉镇观后感
2015/06/10 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
Python实现视频自动打码的示例代码
2022/04/08 Python