js 继承实现
来源:互联网 发布:wpsh5是什么软件 编辑:程序博客网 时间:2024/05/01 12:54
看过很多的js继承实现,发现这段代码的继承实现是比较好的一种,好像跟extjs的继承机制非常相似,
/** * 扩展函数 * @param target 扩展对象 * @param params 扩展参数 */function extend(target, params) { if (!target) { target = {}; } for (var prop in params) { target[prop] = params[prop]; } return target;}
/** * 继承函数 * @param SuperClass 父类 * @param overrides 重写方法 */function extendClass(SuperClass, overrides) { var SubClass = function() { // 自动调用构造函数 this.initialize.apply(this, arguments); }; SubClass.prototype = new SuperClass(); extend(SubClass.prototype, overrides); SubClass.superclass = SuperClass; return SubClass;}
使用方法
var Animal = extendClass(Object, { initialize: function(name){ this.name = name; }, showName: function(){ alert(this.name); }}); var Cat = extendClass(Animal, { initialize: function(name) { // 调用父类构造函数 Cat.superclass.prototype.initialize.call(this, name); }}); var BlackCat = extendClass(Cat, { initialize: function(name, type) { // 调用父类构造函数 BlackCat.superclass.prototype.initialize.call(this, name); this.type = type; }, showType: function() { alert(this.type); }, showName: function() { alert(this.name + ":" + this.type); }}); var cat = new Cat("cat name");// 继承方法cat.showName(); // truealert(cat instanceof Animal); // truealert(cat instanceof Cat); // falsealert(cat instanceof BlackCat); var blackCat = new BlackCat("123", "black"); // 方法重写blackCat.showName(); // 自有方法blackCat.showType(); // truealert(blackCat instanceof Animal); // truealert(blackCat instanceof Cat); // truealert(blackCat instanceof BlackCat);
0 0
- js继承如何实现继承?
- js中的继承实现
- js中的继承实现
- JS中的继承实现
- js中的继承实现
- js继承机制实现
- js如何实现继承
- JS继承的实现
- js实现继承机制
- js继承的实现
- js实现类继承
- js继承的实现
- js继承的实现
- js继承的实现
- JS中的继承实现
- js继承的实现
- js 继承实现
- js继承的实现
- extjs文件上传组件UploadDialog的用法
- Extjs keyup事件bug修正
- ext columnmodel获取任意列的值
- extjs奇怪问题 不断更新
- columnmodel 动态cell编辑
- js 继承实现
- js 中null 和undefined的区别
- 编程学习笔记2--枚举的应用
- 单例模式再讨论(有关序列化的单例问题)
- solr第一弹 autocomplete(自动补全)
- cocostudio 事件穿透(coco2dx 3.2)
- lucene多索引上的搜索
- jquery 分页插件
- mssql 追加行号 row_number()的用法