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 相关文章推荐
document.getElementById介绍
Sep 13 Javascript
js判断变量是否未定义的代码
Mar 28 Javascript
js利用正则表达式检验输入内容是否为网址
Jul 05 Javascript
jQuery Easyui快速入门教程
Aug 21 Javascript
Ionic+AngularJS实现登录和注册带验证功能
Feb 09 Javascript
JavaScript对象_动力节点Java学院整理
Jun 23 Javascript
JavaScript实现随机数生成器(去重)
Oct 13 Javascript
ES6 javascript的异步操作实例详解
Oct 30 Javascript
关于vue面试题汇总
Mar 20 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
Nov 13 Javascript
Element UI框架中巧用树选择器的实现
Dec 12 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
Dec 10 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常用函数小技巧
2008/09/11 PHP
PHP高自定义性安全验证码代码
2011/11/27 PHP
深入apache host的配置详解
2013/06/09 PHP
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
php中文验证码实现方法
2015/06/18 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
js控制表单操作的常用代码小结
2013/08/15 Javascript
JQuery对id中含有特殊字符的转义处理示例
2013/09/06 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
2014/06/05 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
node.js的事件机制
2017/02/08 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
详解Python中open()函数指定文件打开方式的用法
2016/06/04 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
Python使用matplotlib填充图形指定区域代码示例
2018/01/16 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
python使用if语句实现一个猜拳游戏详解
2019/08/27 Python
CSS3动画:5种预载动画效果实例
2017/04/05 HTML / CSS
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
留学推荐信怎么写
2014/01/25 职场文书
《一个小村庄的故事》教学反思
2014/04/13 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书
pytorch 如何使用batch训练lstm网络
2021/05/28 Python
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android