JavaScript之子类构建工具
(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; } })()
![QQ沟通交流群](https://blog-static.cnblogs.com/files/johnnyzen/cnblogs-qq-group-qrcode.gif?t=1679679148)
本文作者:
千千寰宇
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!