关于JS中的继承(二)
来源:互联网 发布:数据库 substring 编辑:程序博客网 时间:2024/05/29 15:29
JS中的call继承
在子类的构造体中,把父类当做普通方法执行,让父类方法中的this指向子类的实例。
call继承的原理
把父类构造体中私有的属性和方法,原封不动复制了一份给子类的实例(继承完成后,子类和父类是没关系的)。
call继承的细节
我们一般把call继承放在子类构造体中的第一行,也就是创建子类实例的时候,进来的第一件事情就是先继承,然后再给实例赋值自己私有的(好处:自己的可以把继承过来的结果替换掉)
function Parent() { this.x = 100;}Parent.prototype.getX = function () { console.log(this.x);};function Children() { //=>this:child 子类的实例 Parent.call(this);//=>让Parent执行,方法中的THIS依然是子类的实例(在父类构造体中写的 THIS.XXX=XXX 都相当于在给子类的实例增加一些私有的属性和方法,相当于给children的实例child增加了一些私有的属性和方法) this.y = 200;}var child = new Children();
寄生组合继承
首先介绍一下:Object.create([obj]):创建一个空对象(实例),把[obj]作为新创建对象的原型
var obj={name:'李义超'};var newObj=Object.create(obj);newObj.__proto__===obj
然后再利用call继承就实现了寄生组合继承
在寄生组合继承中,实现了一个比较不错的需求:
function Parent() { this.x = 100;}Parent.prototype.getX = function () { console.log(this.x);};function Children() { Parent.call(this); this.y = 200;}Children.prototype = Object.create(Parent.prototype);Children.prototype.constructor = Children;Children.prototype.getY = function () { console.log(this.y);};
阅读全文
0 0
- 关于JS中的继承(二)
- 关于JS中的继承(一)
- 关于JS中的继承(三)
- js继承封装(二)
- C#中的继承(二)
- C++中的继承(二)
- c++中的继承(二)
- JS面向对象(二)—继承
- JS继承二
- 浅谈JS继承(二)
- 关于js继承
- 关于JS的继承
- 关于js原型继承
- js关于继承
- C++中的虚拟继承(二)【转】
- Node.js中的继承(六)
- Java中的继承(二)
- JS 中的继承
- c语言:access函数
- 个人总结30
- Homestead中第一个Laravel项目502 Bad Gateway
- 从一个窗口句柄获取IWebBrowser2和IHTMLDocument2接口
- html
- 关于JS中的继承(二)
- 【3分钟带你学】JS对象继承
- AndroidStudio 升级到3.0后输入法中文状态下无法选词解决方案
- Android SVG 和 VectorDrawable 的基本知识
- 第9章 机器学习实战之树回归
- Python SQLite3使用
- Linux环境变量详解
- Android svg VectorDrawable 动画效果
- cuda