JavaScript之子类构建工具
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | ( function (){ var initializing = false ; var superPattern = /xyz/.test( function (){ xyz; }) ? /\b_super\b/ : /.*/; Object.subClass = function (properties){ //给Object添加一个subClass方法 var _super = this .prototype; //初始化超类 initailizing = true ; var proto = new this (); for ( var name in properties){ proto[name] = typeof properties[name] == "function" && typeof _super[name] == "function" && superPattern.test(properties[name]) ? ( function (name,fn){ //定义一个重载函数 return function (){ var tmp = this ._super; this ._super = _super[name]; var ret = fn.apply( this ,arguments); this ._super = tmp; return ret; } })(name,properties[name]) : properties[name]; } } function Class(){ if (!initializing && this .init){ //创建一个仿真类构造器 this .init.apply( this .arguments); } Class.prototype = proto; //设置类的原型 Class.constructor = Class; //重载构造器引用 Class.subClass = arguments.callee; //让类继续可扩展 return Class; } })() |

本文作者:
千千寰宇
本文链接: https://www.cnblogs.com/johnnyzen/p/7893826.html
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
本文链接: https://www.cnblogs.com/johnnyzen/p/7893826.html
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步