经典继承方法实现(模拟extjs底层继承机制)
来源:互联网 发布:java编译器中文安卓版 编辑:程序博客网 时间:2024/06/05 22:54
// 混合继承的缺点: 3件事 : 继承了父类的2次模版 , 继承了一次父类的原型对象 // extend方法 2件事: 继承1次父类的模版 继承一次父类的原型对象 //1:子类,2:父类 function extend(sub,sup){ //目的:实现只继承父类的原型对象 var F = new Function(); //创建一个空函数,目的是进行中转 F.prototype = sup.prototype; //实现空函数的原型对象和父类的原型对象转换 sub.prototype = new F(); //子类原型对象原型进程 sub.prototype.constructor = sub; //还原子类的构造器 //保存一下父类的原型对象,一方面方便解耦,另一方面方便获得父类的原型对象 sub.superClass = sup.prototype; //自定义一个子类的静态属性,接受父类的原型对象 //判断父类原型的构造器 if (sup.prototype.constructor == Object.prototype.constructor) { sup.prototype.constructor = sup; } } function Person(name,age){ this.name = name; this.age = age; } Person.prototype = { constructor : Person, sayHello : function(){ console.log('sayHello'); } } function Boy(name,age,sex){ Boy.superClass.constructor.call(this,name,age); this.sex = sex; } //原型的继承方式:即继承了父类的模板,有继承了父类的原型对象 //Boy.prototype = new Person(); //只继承一次父类的原型对象 extend(Boy,Person); //给子类添加一个原型对象的方法 Boy.prototype.sayHello = function(){ console.log('Hello javascript'); } var b = new Boy('z3',20,'男'); console.log(b.name); console.log(b.age); console.log(b.sex); Boy.superClass.sayHello.call(b);
0 0
- 经典继承方法实现(模拟extjs底层继承机制)
- ExtJS底层继承机制实现
- 模拟ExtJS底层继承(原理)
- javascript原型继承-实现extjs底层继承(2)
- JavaScript继承机制模拟实现
- 18--26 面向对象程序设计26(模拟extjs底层继承方式)
- EXTJS的继承机制
- extjs实现继承
- ExtJS 3.4 类继承机制
- ExtJs中继承机制和窗体创建(精品)
- [iOS]使用NSProxy实现消息转发机制,模拟多重继承
- [iOS]使用NSProxy实现消息转发机制,模拟多重继承
- [iOS]使用NSProxy实现消息转发机制,模拟多重继承
- 使用NSProxy实现消息转发机制,模拟多重继承
- 继承机制的实现
- ECMAScript 继承机制实现
- JavaScript_ECMAScript 继承机制实现
- ECMAScript 继承机制实现
- android打开媒体库、照相机相关代码总结及常用UI处理代码,值得收藏
- leetcode_c++:链表:Reverse Linked List II (092)
- 补充说明Window、PhoneWindow与DecorView
- maven私服nexus-bundle的安装和启动
- OpenGL 利用framebuffer实现快速精确的点选拾取
- 经典继承方法实现(模拟extjs底层继承机制)
- Spark性能优化:shuffle调优
- poj --3614 Sunscreen
- easyui 演示 财务会计区间
- Windows下条件变量实现读写同步
- 前台页面向后台提交中文出现乱码解决办法
- hdu3506Monkey Party
- java之构造函数
- CAP原理和BASE思想