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 页面执行时间计算代码
Mar 04 Javascript
JavaScript 验证浏览器是否支持javascript的方法小结
May 17 Javascript
javascript模拟select,jselect的方法实现
Nov 08 Javascript
JavaScript中的变量定义与储存介绍
Dec 31 Javascript
浅谈javascript 函数属性和方法
Jan 21 Javascript
javascript字符串函数汇总
Dec 06 Javascript
AngularJs Managing Service Dependencies详解
Sep 02 Javascript
js 实现省市区三级联动菜单效果
Feb 20 Javascript
使用原生js写ajax实例(推荐)
May 31 Javascript
微信小程序列表中item左滑删除功能
Nov 07 Javascript
详解如何在Vue项目中导出Excel
Apr 19 Javascript
Js图片点击切换轮播实现代码
Jul 27 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 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
js中数组排序sort方法的原理分析
2014/11/20 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
2019/08/16 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
js实现验证码干扰(静态)
2021/02/22 Javascript
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
python 字符串格式化代码
2013/03/17 Python
Python标准库defaultdict模块使用示例
2015/04/28 Python
Python scikit-learn 做线性回归的示例代码
2017/11/01 Python
python实现xlsx文件分析详解
2018/01/02 Python
Python 通配符删除文件的实例
2018/04/24 Python
用TensorFlow实现戴明回归算法的示例
2018/05/02 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
python实现加密的方式总结
2020/01/19 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2020/07/13 Python
超级实用的8个Python列表技巧
2020/08/24 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
学期研究性学习个人的自我评价
2014/01/09 职场文书
办公室文员工作职责
2014/01/31 职场文书
人民教师的自我评价分享
2014/02/21 职场文书
夏季药店促销方案
2014/08/22 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书