最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js继承之js原型和原型链的详细介绍

来源:动视网 责编:小采 时间:2020-11-27 19:32:08
文档

js继承之js原型和原型链的详细介绍

js继承之js原型和原型链的详细介绍:本篇文章给大家分享的内容是关于js原型和原型链的详细介绍,接下我们就来具体看看js原型继承和js原型链继承的内容,希望可以帮助到大家。js原型链所谓言行链就是如果构造函数或对象A,A的原型指向构造函数或对象B,B的原型再指向构造函数或对象C,以此类推,最
推荐度:
导读js继承之js原型和原型链的详细介绍:本篇文章给大家分享的内容是关于js原型和原型链的详细介绍,接下我们就来具体看看js原型继承和js原型链继承的内容,希望可以帮助到大家。js原型链所谓言行链就是如果构造函数或对象A,A的原型指向构造函数或对象B,B的原型再指向构造函数或对象C,以此类推,最
 本篇文章给大家分享的内容是关于js原型和原型链的详细介绍,接下我们就来具体看看js原型继承和js原型链继承的内容,希望可以帮助到大家。

js原型链

所谓言行链就是如果构造函数或对象A,A的原型指向构造函数或对象B,B的原型再指向构造函数或对象C,以此类推,最终的构造函数或对象的原乡指向Object的原型.由此形成一条链状结构,被称之为原型链

js原型链示例代码:

// 原型链
function A(){
 this.a = 'a';
}
// 通过构造函数创建对象
var a = new A();

function B(){
 this.b = 'b';
}
// 将B的原型指向对象a
B.prototype = a;
// 通过构造函数创建对象
var b = new B();

console.log(b.b);// b
console.log(b.a);// a

function C(){
 this.c = 'c';
}
// 将C的原型指向对象b
C.prototype = b;
// 通过构造函数创建对象
var c = new C();

console.log(c.c);// c
console.log(c.b);// b
console.log(c.a);// a

js原型链代码分析图:

只继承于原型

示例代码:

// 原型链
function A(){
 // 将自有属性改写为原型属性
 // this.a = 'a';
}
A.prototype.a = 'a';

function B(){
 // this.b = 'b';
}

// 将B的原型指向
B.prototype = A.prototype;

B.prototype.b = 'b';
/*B.prototype = {
 b : 'b'
}*/

function C(){
 this.c = 'c';
}
// 将C的原型指向
C.prototype = B.prototype;

var c = new C();
console.log(c.c);// c
console.log(c.b);
console.log(c.a);// a

js原型链继承实现的问题

1、原型链实际上是在多个构造函数或对象之间共享属性和方法

2、常见子类的对象时,不能像父级的构造函数传递任何参数

注意: 在实际开发中很少会单独使用原型链

示例代码:

// 原型链
function A(){
 // 将自有属性改写为原型属性
 // this.a = 'a';
}
A.prototype.a = 'a';

function B(){
 // this.b = 'b';
}

// 将B的原型指向
B.prototype = A.prototype;

B.prototype.b = 'b';

function C(){
 // this.c = 'c';
}
// 将C的原型指向
C.prototype = B.prototype;
C.prototype.c = 'c';

var c = new C();
console.log(c.c);// 调用
结果为 c console.log(c.b);// 调用结果为 b console.log(c.a);// 调用结果为 a var a = new A(); console.log(a.a);// 调用结果为 a console.log(a.b);// 调用结果为 b console.log(a.c);// 调用结果为 c var b = new B(); console.log(b.a);// 调用结果为 a console.log(b.b);// 调用结果为 b console.log(b.c);// 调用结果为 c

文档

js继承之js原型和原型链的详细介绍

js继承之js原型和原型链的详细介绍:本篇文章给大家分享的内容是关于js原型和原型链的详细介绍,接下我们就来具体看看js原型继承和js原型链继承的内容,希望可以帮助到大家。js原型链所谓言行链就是如果构造函数或对象A,A的原型指向构造函数或对象B,B的原型再指向构造函数或对象C,以此类推,最
推荐度:
标签: js 原型 继承
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top