访问一个对象的原型可以使用ES5中的Object.getPrototypeOf方法,或者ES6中的__proto__属性.

原型链的作用是用来实现继承,比如我们新建一个数组,数组的方法就是从数组的原型上继承而来的.

	var arr = [];
arr.map === Array.prototype.map    //arr.map是从arr.__proto__上继承下来的,arr.__proto__也就是Array.prototype

图形化原型链

虽然我们都说原型链,但实际上,在不考虑网页中frame的情况,js引擎在执行期间的某一时刻,所有存在的对象组成的是一棵原型树.默认情况下,只有一棵树.根节点可以说是Object.prototype,也可以说是null.

\

但我们可以再建立一棵原型树,通过使用Object.create方法

	var foo = Object.create(null);        //foo是一个对象,但它是游离的,不属于已有的那棵原型树
var bar = Object.create(foo);         //bar的原型是foo
var baz = Object.create(foo);         //baz的原型是foo 

这样我们有了第二棵原型树