微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JS仿Base.js实现的继承示例

本文实例讲述了JS仿Base.js实现的继承。分享给大家供大家参考,具体如下:

rush:js;"> var Klass = function() {}; Klass.extendClass = (function() { var F = function() {}; return function(C,P) { F.prototype = P.prototype; C.prototype = new F(); C.uper = P.prototype; C.prototype.constructor = C; }; })(); Klass.extend = function(props) { var _slice = Array.prototype.slice; var Glass = function() { /*if (Glass.uper && Glass.uper.hasOwnProperty("init")) { Glass.uper.init.apply(this,_slice.call(arguments)) }*/ if (Glass.prototype.hasOwnProperty("init")) { Glass.prototype.init.apply(this,_slice.call(arguments)); } }; Klass.extendClass(Glass,this); Glass.extend = this.extend; for (var key in props) { if (props.hasOwnProperty(key)) { Glass.prototype[key] = props[key]; } } return Glass; };

example:

rush:js;"> var A = Klass.extend({ init: function(name) { this.name = name; console.log('A constructor is running!'); },getName: function() { return this.name; } }); var B = A.extend({ init: function(name) { this.name = name; console.log('B constructor is running!'); },getName: function() { return this.name; },a: 'b' }); var C = B.extend({ init: function(name) { console.log('C constructor is running!'); },c: 'c',getName: function() { var name = C.uper.getName.call(this); return 'Hi,I\'m' + this.name; } }); var c1 = new C('zlf'); console.log(c1.getName());

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》及《用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

原文地址:https://www.jb51.cc/js/40144.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐