Voyz's Studio.

极其重要---原型链

字数统计: 233阅读时长: 1 min
2018/08/06 Share

什么是原型链

原型链.jpg

  • 在JavaScript中,万物皆对象Object,每一个对象都是由它的原型对象的构造函数实例化得到的。
  • 任何对象都有_proto_属性指向它的原形,所以会形成一条_proto_连起来的链条,这就是原型链
  • 查找对象的属性时,先查找对象本身是否含有该属性,若不存在,则会在原型链上查找,但不会查找自身的prototype

三种创建对象的方式

_proto_的指向:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/*1、字面量方式*/
var a = {};
console.log(a.__proto__); //Object {}

console.log(a.__proto__ === a.constructor.prototype); //true

/*2、构造器方式*/
var A = function(){};
var a = new A();
console.log(a.__proto__); //A {}

console.log(a.__proto__ === a.constructor.prototype); //true

/*3、Object.create()方式*/
var a1 = {a:1}
var a2 = Object.create(a1);
console.log(a2.__proto__); //Object {a: 1}

console.log(a.__proto__ === a.constructor.prototype); //false(此处即为图1中的例外情况)
CATALOG
  1. 1. 什么是原型链
  2. 2. 三种创建对象的方式