视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
如何理解JavaScript中的原型链
2020-11-27 19:26:38 责编:小采
文档
JavaScript中的原型链指的是原型对象链接到另一个原型对象并且依此类推,它的作用就是当请求对象不包含属性时,js就会一直向下查看原型链直到找到所要请求的属性或者到链的末尾

JavaScript是一种基于原型的语言,也就是说JavaScript中的对象属性和方法可以通过克隆或者扩展实现通用对象共享。这就称为原型继承。接下来在文章中为大家详细介绍JavaScript中的原型链,希望对大家有所帮助

【推荐课程:JavaScript教程】

JavaScript中的每一个东西几乎都可以看作是一个对象,对象包含可以使用的obj.propName 或者是访问的命名属性obj['propName'],每个对象都有一个名为prototype的内部属性,它链接到另一个对象。原型对象也有自己的原型对象依此类推,这就被称为原型链。如果你遵循一个对象的原型链,最终会到达Object 原型所在的核心原型,标志着null链的末端。

原型链的作用是当请求对象不包含的属性时,JavaScript就会向下查看原型链,直到它找到所请求的属性,或者直到它到达链的末尾。这种行为允许我们创建“类”并实现继承。

function Animal() {}
var animal = new Animal();

Animal通过两种方式向类添加属性。一种是通过将它们设置为实例属性,还有一种是将它们添加到Animal原型中

function Animal(name) {
 this.name = name;
 }
 Animal.prototype.speak = function() {
 console.log("My name is " + this.name);
 };
 var animal = new Animal('Monty');
 animal.speak();

输出结果:My name is Monty

Animal当我们在控制台中检查它时,对象的结构变得清晰。我们可以看到name属性属于对象本身,同时speak也是Animal原型的一部分。

扩展Animal类来创建一个Cat类

function Cat(name) {
 Animal.call(this, name);
 }
Cat.prototype = new Animal();
var cat = new Cat('Monty');
cat.speak();

输出结果:My name is Monty

从上图中我们可以看出Cat对象具有自己的name实例属性,同时它也继承Animal的name实例属性以及speak原型属性。这就是原型链的作用,当我们请求cat.name时,JavaScript会找到name实例属性并且不会使用到原型链。但是当我们请求cat.speak时,JavaScript必须沿着原型链向下移动,直到找到speak继承自的属性Animal

总结:

下载本文
显示全文
专题