- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
这篇文章主要介绍了 JavaScript 中的继承方式详解 ,本文讲解了 js 继承的概念、原型式
继承与类式继承、原型链继承、类式继承、组合继承、原型式继承等内容 ,需要的朋友可以
参考下
js 继承的概念
js 里常用的如下两种继承方式:
原型链继承(对象间的继承)
类式继承(构造函数间的继承)
由于 js 不像 java 那样是真正面向对象的语言, js 是基于对象的,它没有类的概念。所
以,要想实现继承,可以用 js 的原型 prototype 机制或者用 apply 和 call 方法去实现
在面向对象的语言中,我们使用类来创建一个自定义对象。然而 js 中所有事物都是对
象,那么用什么办法来创建自定义对象呢?这就需要用到 js 的原型:
我们可以简单的把 prototype 看做是一个模版,新创建的自定义对象都是这个模版
(prototype )的一个拷贝 (实际上不是拷贝而是链接,只不过这种链接是不可见,新实例
化的对象内部有一个看不见的 __Proto__ 指针,指向原型对象) 。
js 可以通过构造函数和原型的方式模拟实现类的功能。 另外, js 类式继承的实现也是
依靠原型链来实现的。
原型式继承与类式继承
类式继承是在子类型构造函数的内部调用超类型的构造函数。
严格的类式继承并不是很常见,一般都是组合着用:
代码如下 :
function Super(){
this.colors=[red,blue];
}
function Sub(){
Super.call(this);
}
原型式继承是借助已有的对象创建新的对象, 将子类的原型指向父类, 就相当于加入了
父类这条原型链
原型链继承
为了让子类继承父类的属性(也包括方法) ,首先需要定义一个构造函数。然后,将父
类的新实例赋值给构造函数的原型。代码如下:
代码如下 :
lt;scriptgt;
function Parent(){
this.name = mike;
}
function Child(){
this.age = 12;
}
Child.prototype = new Parent();//Child 继承 Parent,通过原型,形成链条
var test = new Child();
alert(test.age);
alert(test.name);// 得到被继承的属性
// 继续原型链继承
function Brother(){ //brother 构造
this.weight = 60;
}
Brother.prototype = new Child();// 继续原型链继承
var brother = new Brother();
alert(brother.name);// 继承了 Parent 和 Child, 弹出 mike
alert(brother.age);// 弹出 12
lt;/scriptgt;
以上原型链继承还缺少一环,那就是 Object ,所有的构造函数都继承自 Object 。而继承
Object 是自动完成的,并不需要我们自己手动继承,那么他们的从属关系是怎样的呢?
确定原型和实例的关系
可以通过两种方式来确定原型和实例之间的关系。操作符 in
文档评论(0)