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 相关文章推荐
js常见表单应用技巧
Jan 09 Javascript
利用js跨页面保存变量做菜单的方法
Jan 17 Javascript
别了 JavaScript中的isXX系列
Aug 01 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
May 17 Javascript
js 判断上传文件大小及格式代码
Nov 13 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
Jul 28 Javascript
javascript实现3D变换的立体圆圈实例
Aug 06 Javascript
微信小程序 wx.request(object) API详解及实例代码
Sep 30 Javascript
js实现将json数组显示前台table中
Jan 10 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
Jul 13 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
Sep 19 jQuery
手淘flexible.js框架使用和源代码讲解小结
Oct 15 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文件注释标记及规范小结
2012/04/01 PHP
php二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
Window下PHP三种运行方式图文详解
2013/06/11 PHP
解析MySql与Java的时间类型
2013/06/22 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
laravel框架与其他框架的详细对比
2019/10/23 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
12个非常实用的JavaScript小技巧【推荐】
2016/05/18 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
2017/01/04 Javascript
JavaScript利用Date实现简单的倒计时实例
2017/01/12 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
js实现简单模态框实例
2018/11/16 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
python去除所有html标签的方法
2015/05/05 Python
Python生成随机密码的方法
2017/06/16 Python
在linux系统下安装python librtmp包的实现方法
2019/07/22 Python
在Python中使用MySQL--PyMySQL的基本使用方法
2019/11/19 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
Python配置pip国内镜像源的实现
2020/08/20 Python
详解python中的异常捕获
2020/12/15 Python
皇家阿尔伯特英国官方商店:Royal Albert骨瓷
2019/03/25 全球购物
计算机专业个人求职自荐信
2013/09/21 职场文书
中学生励志演讲稿
2014/04/26 职场文书
基层党支部整改方案
2014/10/25 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
2015年消防工作总结
2015/04/24 职场文书
python图片灰度化处理的几种方法
2021/06/23 Python
Springboot中如何自动转JSON输出
2022/06/16 Java/Android