源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

javascript面向对象编程代码

  • 时间:2020-06-26 09:59 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:javascript面向对象编程代码
[u]复制代码[/u] 代码如下:
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); };
调用:
[u]复制代码[/u] 代码如下:
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());
思路就是这样的,代码没验证过。分享的思路,大家自己看着办。哈哈~~
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部